2008-12-10 14 views
12

Ich bekomme oft ein PDF von unserem Designer (in Adobe InDesign erstellt), der an Tausende von Menschen gesendet werden soll.Wie funktioniert der Seriendruck über einer PDF-Datei?

Ich habe die Liste mit allen Leuten, und es ist einfach, einen Serienbrief in OpenOffice.org zu machen. OpenOffice.org unterstützt jedoch das erweiterte PDF nicht. Ich möchte nur etwas Text auf jeder Seite ausgeben und ausdrucken.

So mache ich es jetzt: Drucke 6.000 Kopien des PDFs aus, lege sie alle wieder in den Drucker und drucke einfach Namen, Adresse und andere Informationen darüber aus. Aber das ist teuer.

Leider kann ich die PDF nicht zu einem Bild machen und das in OpenOffice.org verwenden, weil es den Computer zum Stillstand bringt. Es dauert auch extrem lange, diesen Job an den Drucker zu senden.

Also, gibt es eine einfache Möglichkeit, diesen Seriendruck (vorzugsweise in Python) zu tun, ohne für geschlossene Lösungen Dritter zu bezahlen?

+0

Also ist das PDF ein Formular? – Svante

Antwort

2

Sie könnten wahrscheinlich eine PDF-Bibliothek wie iText betrachten. Wenn Sie einige Programmierkenntnisse und ein wenig Zeit haben, können Sie einen Code schreiben, der die Kontaktinformationen zu den PDFs

1

Wenn Sie nicht die Vorlage fügt in einem anderen Format als PDF eine einfache Ad-hoc-Lösung

wäre bekommen
  • wandeln das PDF in ein Bild
  • das Bild in der backgroud Ihrer (OpenOffice.org) Dokument
  • Position Seriendruckfelder auf dem Bild
  • den Seriendruck und Druck tun setzen
+0

Der Druckauftrag wird RIESIG und er wird nie enden. –

+0

Nun, dann wäre es am einfachsten, wenn Sie Ihren Designer bitten, die Vorlage in einem brauchbaren Format bereitzustellen (oder um eine Kopie von Adobe Acrobat Professional zu erhalten, ich denke, es sollte eine Möglichkeit geben, die PDF in ein Formular zu konvertieren). Scheint der ROI von 6000 Briefen sollte eine solche Investition rechtfertigen. –

1

Wahrscheinlich wäre der beste Weg, ein anderes PDF mit dem fehlenden Text zu erzeugen und ein PDF über das andere zu legen. Ein schneller Google hat diesen Link gefunden, der zeigt, wie man es in Acrobat macht, und ich bin mir sicher, dass es auch andere Methoden gibt.

http://forums.macrumors.com/showthread.php?t=508226

1

Für eine nicht-mess, no-fuss-Lösung verwenden iText einfach den Text zum pdf hinzuzufügen. Zum Beispiel können Sie den Text in einem PDF-Dokument hinzuzufügen folgende einmal geladen:

PdfContentByte cb= ...; 
cb.BeginText(); 
cb.SetFontAndSize(font, fontSize); 
float x = ...; 
float y = ...; 
cb.SetTextMatrix(x, y); 
cb.ShowText(fieldValue); 
cb.EndText();  

Von da an sich als eine andere Datei speichern und drucken.

Allerdings habe ich festgestellt, dass Formularfelder die Art und Weise sind, mit PDF-Dokumentengenerierung aus Vorlagen zu gehen.

Wenn Sie eine Vorlage mit Formularfeldern (hinzugefügt mit Adobe Acrobat) haben, haben Sie eine von zwei Möglichkeiten:

  • eine FDF-Datei erstellen, die im Wesentlichen eine Liste von Werten für die Felder im Formular ist . Ein FDF ist ein einfaches Textdokument, das auf das Originaldokument verweist, sodass beim Laden des PDFs das Dokument mit den vom FDF bereitgestellten Feldwerten geladen wird.
  • Alternativ laden Sie die Vorlage mit einer Bibliothek wie iText/iTextSharp, füllen Sie die Formularfelder manuell und speichern Sie sie als separates PDF.

Eine Probe FDF-Datei sieht wie folgt aus (bestohlen Planet PDF):

%FDF-1.2 
%âãÏÓ 
1 0 obj 
<<< 
/F(Example PDF Form.pdf) 
/Fields[ 
    << 
    /T(myTextField) 
    /V(myTextField default value) 
    >> 
    ] 
>> 
>> endobj trailer 
<> 
%%EOF 

Aufgrund der einfachen Format und die geringe Größe des FDF, ist dies der bevorzugte Ansatz ist, und der Ansatz sollte funktionieren gut in jeder Sprache.

Wie für die Felder programmatisch füllen, können Sie iText auf folgende Weise verwenden:

PdfAcroForm acroForm = writer.AcroForm; 
acroForm.Put(new PdfName(fieldInfo.Name), new PdfString(fieldInfo.Value)); 
+0

Aber kann ich 6000 Namen in ein FDF einfügen, oder muss ich 6000 FDF-Dateien machen und dann 6000 5MiB PDF-Dateien ausgeben (was wäre RIESIG und dauert ewig)? –

8

Jetzt habe ich ein Konto gemacht. Ich habe es mit dem genialen pdftk behoben.

In meiner Suche überblicke ich total die Funktion "Hintergrund" und "Overlay". Meine Lösung war dies:

pdftk names.pdf background boat_background.pdf output out.pdf 

Falls jemand anderes jemals dieses Problem hat. Ich habe auch darüber geschrieben on my web page

+0

Ich bin upboting, weil dies die Lösung für ein anderes Problem ist, das ich habe, nicht Formen verwandt, aber eher "stempeln" Text auf eine pdf –

1

Was ist mit einem variablen Datenprogramm wie - XMPie für Adobe Indesign. Es ist ein Plug-in, das sich auf Ihre Personenliste beziehen sollte (es könnte aber auch eine Liste in Excel sein).

2

Es gibt zwei viel einfachere und billigere Lösungen.

Zuerst können Sie Ihren Seriendruck direkt in InDesign mit DataMerge durchführen. Dies ist ein Dienstprogramm, das in InDesign zurück in CS hinzugefügt wurde. Sie exportieren oder speichern Ihre Namen im CSV-Format. Importieren Sie die Daten in eine InDesign-Vorlage und geben Sie dann Ihren Namen, Ihre Adresse und solche Felder in das Layout ein. Drücken Sie auf Los. Es wird ein neues Dokument mit allen fertigen Buchstaben erstellt oder Sie können direkt zum Drucker gehen.

ODER Sie können Ihre Daten in eine XML-Datei exportieren und ein dynamisches Layout mithilfe von XML-Platzhaltern in InDesign erstellen.

Das Buch Ein Leitfaden für Designer zu Adobe InDesign und XML wird Ihnen beibringen, wie Sie dies tun, oder Sie können die Lynda.com Videos für dynamische Workflows mit InDesign und XML überprüfen.

Sehr einfach zu tun.

Wenn Sie separate PDF-Dateien für den Seriendruck erstellen möchten, können Sie eine lange PDF-Datei mit allen Namen in einer Datei erstellen und dann in Acrobat Pro selbst Extrahieren, um PDF-Dateien zu trennen.

+2

Billiger? Nicht so wie bei den Kosten, denn pdftk ist kostenlos. Es ist auch sehr schnell. Am Ende habe ich reportlab pdfgen plus pdftk benutzt, um diesen Job zu machen. Und es dauert nur wenige Sekunden, um eine 50.000-Seiten-CSV-Datei über eine PDF-Datei zu verschicken. :-) –

0

Sie können die Datenzusammenführungsfunktion von InDesign verwenden, oder Sie können tun, was Sie mit dem Drucken eines Teils des Jobs getan haben, und dann den Seriendruck mit Word oder Open Office drucken. Suchen Sie aber auch nach einem Unternehmen, das variablen Datenoffsetdruck oder Dynamic Publishing durchführen kann. Könnte im Voraus ein wenig teurer sein, aber kann ein Bündel sparen, wenn es um Zeit, Testen, sogar Verpackung und Versand geht.

0

Haftungsausschluss: Ich bin der Autor dieses Tools.

lief ich in dieser Frage oft genug, dass ich ein kostenloses Online-Tool für die es gebaut: https://pdfbatchfill.com/

Es nimmt eine PDF-Formular als Vorlage und verwendet diese Daten zusammen mit CSV Form einer einzigen PDF oder einzelne PDF-Dateien zu erzeugen, in einer Zip-Datei.