Η σελίδα μας αναβαθμίστηκε, γι' αυτό τον λόγο τα μέλη μας θα πρέπει να ζητήσουν νέο κωδικό πρόσβασης από την υπηρεσία "Αποστολή κωδικού πρόσβασης".
Εάν το email με τον νέο κωδικό δεν έρθει στο inbox κοιτάξτε και στο spam folder. Ο server είναι φρέσκος και δεν έχει το reputation που του αξίζει.

Visual studio 2010: Αντιγραφή δεδομένων από φόρμα σε word

Συζητήσεις για τις γλώσσες του dot Net και για του Visual Studio της Microsoft

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
tidotido
Δημοσιεύσεις: 1
Εγγραφή: 18 Μάιος 2011 20:59

Visual studio 2010: Αντιγραφή δεδομένων από φόρμα σε word

Δημοσίευση από tidotido » 19 Ιουν 2011 21:14

Γιά σας.
Mετά από πολύ αναζήτηση στο Google δεν κατάφερα να βρώ λύση στο παρακάτω θέμα.

Στο Visual Studio 2010 φτιάχνω μια φόρμα (σε VB) με τρία πεδία. 1. Όνομα 2. Πόλη 3. Ηλικία.

Εικόνα

Επίσης, φτιάχνω ένα κουμπί, το "Print Document".

Προσπαθώ ανεπιτυχώς να φτιάξω μια macro ώστε το κουμπί να ανοίγει ένα καθορισμένο έγγραφο, στο παράδειγμα το "test.doc", όπου σε καθορισμένες θέσεις (με bookmark) να αντιγράφει τα πεδία της φόρμας στο έγγραφο.

Εικόνα

Δοκίμασα διάφορες macro της VB αλλά κολάνε. Μία macro με τις δυνατότητες που αναζητώ είναι η παρακάτω:

Κώδικας: Επιλογή όλων

Private Sub cmdPrint_Click()
'Print customer slip for current customer.
Dim appWord As Word.Application
Dim doc As Word.Document
'Avoid error 429, when Word isn't open.
On Error Resume Next
Err.Clear
'Set appWord object variable to running instance of Word.
Set appWord = GetObject(, "Word.Application")
If Err.Number <> 0 Then
'If Word isn't open, create a new instance of Word.
Set appWord = New Word.Application
End If
Set doc = appWord.Documents.Open&#40;"C&#58;\WordForms\CustomerSlip.doc", , True&#41;
With doc
.FormFields&#40;"fldCustomerID"&#41;.Result = Me!CustomerID
.FormFields&#40;"fldCompanyName"&#41;.Result = Me!CompanyName
.FormFields&#40;"fldContactName"&#41;.Result = Me!ContactName
.Visible = True
.Activate
End With
Set doc = Nothing
Set appWord = Nothing
Exit Sub
errHandler&#58;
MsgBox Err.Number & "&#58; " & Err.Description
End Sub
Όμως κολλά σε διάφορα σημεία όταν κάνω δοκιμή μέσα στο Visual Studio 2010. Ένα πρόβλημα π.χ. είναι αυτό:

Εικόνα

Με λίγα λόγια δεν αναγνωρίζει πολλές εντολές.
Δοκίμασα να κάνω add reference στο project και τα MS Office Object Library και Word Object Library ( ή καπως έτσι) αλλά τίποτα. Αναγνωρίζει μεν το "Word.Application", το "Word.Document" και το doc = appWord.Documents.Open".
Με τα παραπάνω καταφέρνω να ανοίξω το "test.doc" αλλά δεν κάνει καμία ενέργεια copy/paste.

Δοκίμασα πολλές αλλαγές στο ".FormFields("fldCustomerID").Result = Me!CustomerID" αλλά τίποτα. Αντικαθιστώ το ".FormFields" με ".bookmark" ή ".Bookmarks", τίποτα. Κι αν τα καταφέρω και δεχτεί το ".bookmark" δεν δέχεται το ".Result" ή το " Me!......".

Έχω καθίσει πολλές ώρες αλλάζοντας επιμέρους τον κώδικα χωρίς αποτέλεσμα. Γι αυτό παρακαλώ, λίγη βοήθεια να ξεκολλήσω από αυτό το βασανιστικό πρόβλημα.

epipitis
Δημοσιεύσεις: 30
Εγγραφή: 23 Μαρ 2010 18:45
Τοποθεσία: Crete

Visual studio 2010: Αντιγραφή δεδομένων από φόρμα σε word

Δημοσίευση από epipitis » 19 Μάιος 2012 18:49

Kalispera tidotido ,
telika to kataferes to project???me endiaferei gt to idio peripou thelw na kanw kai gw kai se rwtaw an mporeis na me voithiseis ....
euxaristw polu

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Visual studio 2010: Αντιγραφή δεδομένων από φόρμα σε word

Δημοσίευση από dva_dev » 19 Μάιος 2012 21:25

Θα πρέπει στο project να έχεις προσθέσει reference στις βιβλιοθήκες του office, αλλιώς δεν γνωρίζει τι είναι το Word.Application object, ούτε τι μεθόδους έχει.

Στο VS2008 το κάνεις με δεξί κλικ πάνω στο project και Add Reference, μετά ψάχνεις να βρεις τη βιβλιοθήκη που χρειάζεσαι. Φαντάζομαι θα είναι η Microsoft.Office.Interop.Word.dll
Ρίξε μια ματιά στο msdn.microsoft.com/en-US/library/15s06t57

tsibos22
Δημοσιεύσεις: 8
Εγγραφή: 22 Νοέμ 2010 01:43

Visual studio 2010: Αντιγραφή δεδομένων από φόρμα σε word

Δημοσίευση από tsibos22 » 06 Ιούλ 2012 00:19

Καλησπέρα φίλε μου, πήγαινε project->"project name" properties->references ->add->browse και μετά πας εκεί που είναι αποθηκευμένα τα office και βρες αρχεία με τη κατάληξη .dll
έτσι θα βάλεις τη βιβλιοθήκη του word ή όποιαδήποτε βιβλιοθήκη θες. τώρα για κώδικα

dim objWord as new word.application
'δημιουργείς ένα αντικείμενο για word
objword.visible=true
'το κάνεις ορατό δηλαδή θα ανοίξει το word
obword.Documents.add()
επιλέγεις το αρχείο που θα ανοίξει να είναι καινούριο. μπορείς να ανοίξεις και ένα αρχείο που υπάρχει.
objword.selection.typetext("γράφω στο word")
'έτσι γράφεις
με μία γρήγορη αναζήτηση βρίκα αυτό:
http://www.dreamincode.net/forums/topic ... utomation/
γκούγκλαρε μερικές από τις παραπάνω εντολές και γράψε δίπλα tutorial και θα σου βγάλει διάφορα παραδείγματα

lks
Δημοσιεύσεις: 1
Εγγραφή: 05 Νοέμ 2013 14:45

Visual studio 2010: Αντιγραφή δεδομένων από φόρμα σε word

Δημοσίευση από lks » 05 Νοέμ 2013 14:57

Εγώ βρήκα αυτό
δουλεύει αλλά δεν μου γράφει Ελληνικά




Imports System.IO
Imports System
Imports System.Xml
Imports iTextSharp.xmp
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.text.xml
Imports System.Security
Imports System.Collections
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing.Text
Imports System.Text
Imports System.Windows.Forms



Public Class Form1

Dim oldFile As String = "d:/Existing.pdf"
Dim newFile As String = "d:/New.pdf"
' create documentation object
Dim pdfDocument As Document = New Document()
' add age page to PDF document

' Create reader
Dim reader As New PdfReader(oldFile)
Dim filesize As Rectangle = reader.GetPageSizeWithRotation(1)
Dim document As New Document(filesize)

' Create the writer
Dim fs As New FileStream(newFile, FileMode.Create, FileAccess.Write)
Dim writer As PdfWriter = PdfWriter.GetInstance(Document, fs)


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

document.Open()
Dim cb As PdfContentByte = writer.DirectContent

' Set the font, color and size properties for writing text to the PDF
Dim bf As BaseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED)
cb.SetColorFill(BaseColor.DARK_GRAY)
cb.SetFontAndSize(bf, 8)

' Write text in the PDF
cb.BeginText()
Dim text As String = " new text"

' Set the alignment and coordinates here
cb.ShowTextAligned(1, text, 520, 640, 0)
cb.EndText()

' Put the text on a new page in the PDF
Dim page As PdfImportedPage = writer.GetImportedPage(reader, 1)
cb.AddTemplate(page, 0, 0)

' Close the objects
document.Close()
fs.Close()
writer.Close()
reader.Close()
End Sub
End Class

Απάντηση

Επιστροφή στο “dot Net και Visual Studio”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες