Seite 1 von 1
xml-Daten in pdf_Formulare importieren (iTextSharp o.ä.)
Verfasst: 09.12.2012, 17:48
von mischma
SORRY: meine natürlich den LCD ES2!!!
Hallo,
ich habe ein dynamisches PDF-Template erstellt und möchte nun mehrere hundert xml-Datendateien in dieses Template importieren.
Nach dem Import einer einzelnen xml-Datei möchte ich das ausgefüllte PDF mit jeweils neuen Namen abspeichern.
Das erweiterten Readerrechte im Template sollen in den ausgefüllten PDF-Dateien auch zur Verfügung stehen.
Bei meiner Recherche im Netz fand ich einige Beispiele in C# oder Java, die aber nicht den xml-Import behandelten.
Vielleicht hat jemand von Euch bereits Erfahrung damit und kann mir weiterhelfen.
Vielen Dank und Grüsse, Mike
xml-Daten in pdf_Formulare importieren (iTextSharp o.ä.)
Verfasst: 14.12.2012, 09:47
von mischma
P.S. Mittlerweile kann ich per Microsoft VBA die XML-Dateien nacheinander in ein Muster-PDF importieren und das gefüllte PDF unter neuem Namen abspeichern.
Code: Alles auswählen
Option Explicit
Dim strDateien() As String
Sub Fill_PDF()
Dim AcroFRM As New AcroAVDoc, AcroPDF As AcroPDDoc, jso As Object
Dim sPath As String, sRawPDF As String
Dim i As Integer
sPath = ThisWorkbook.Path
sRawPDF = sPath & "Template.pdf"
GetFiles sPath & "xml", "xml"
AcroFRM.Open sRawPDF, ""
For i = LBound(strDateien) To UBound(strDateien)
Set AcroPDF = AcroFRM.GetPDDoc
Set jso = AcroPDF.GetJSObject
jso.importXFAData sPath & "xml" & strDateien(i)
AcroPDF.Save 0, sPath & "pdf" & Replace(strDateien(i), ".xml", ".pdf")
AcroPDF.Close
Next i
AcroFRM.Close False
Set jso = Nothing
Set AcroPDF = Nothing
Set AcroFRM = Nothing
End Sub
Sub GetFiles(sPath As String, sType As String)
Dim lngAnzahl As Long
Dim strDatei As String
strDatei = Dir(sPath & "*." & sType)
Do While Len(strDatei)
lngAnzahl = lngAnzahl + 1
ReDim Preserve strDateien(1 To lngAnzahl)
strDateien(lngAnzahl) = strDatei
strDatei = Dir
Loop
End Sub
Der Import funktioniert nur, wenn die erweiterten Reader-Rechte deaktiviert sind.
Diese bräuchte ich jedoch, da das PDF speicherbar sein sollte.
Vielleicht hat jemand eine Idee...
Vielen Dank und Grüsse, Mike
xml-Daten in pdf_Formulare importieren (iTextSharp o.ä.)
Verfasst: 16.12.2012, 23:14
von mischma
Hallo,
was man alles im Netz findet
So funktioniert es...
Code: Alles auswählen
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace WindowsFormsApplication1
{
public partial class frm : Form
{
string sourcePDF = @"C:\Users\Mike\Desktop\Template.PDF";
string filledPDF = @"C:\Users\Mike\Desktop\Resultat.PDF";
string sourceXML = @"C:\Users\Mike\Desktop\13034325.xml";
public frm()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ImportXmlData(sourcePDF, filledPDF , sourceXML);
}
public void ImportXmlData(string sourcePDF, string filledPDF, string sourceXML)
{
FileStream fs = new FileStream(filledPDF,FileMode.Create);
PdfReader Reader = new PdfReader(sourcePDF);
PdfStamper Stamper = new PdfStamper(Reader, fs, '\0', true);
Stamper.FormFlattening = false;
Stamper.AcroFields.Xfa.FillXfaForm(sourceXML);
Stamper.Close();
Reader.Close();
}
}
}