Laden...

Vorgehen gesucht - PDF`s automatisiert Drucken (bzw. in Tiff umwandeln)

Erstellt von Mackerlama vor 13 Jahren Letzter Beitrag vor 13 Jahren 7.208 Views
M
Mackerlama Themenstarter:in
118 Beiträge seit 2008
vor 13 Jahren
Vorgehen gesucht - PDF`s automatisiert Drucken (bzw. in Tiff umwandeln)

Hallo,

ich würde gerne automatisiert alle PDF-Dokumente, die in einem Verzeichnis liegen in Tiffs umwandeln. Dazu ist ein virtueller Tiff-Drucker installiert. Nach dem Umwandeln sollen die PDF`s gelöscht werden und ein VB-Skript (exisitert bereits) gestartet werden, dass die Tiffs mit einer Datenbasis verknüpft. (Es ist eine Dokumenten-Archivierungsgeschichte, die einmal täglich laufen soll).

Wie kann man da vorgehen?
Im Endeffekt soll das ganze als Task in der Nacht ablaufen. Tiffs erstellen --> PDFs löschen --> VB-Skript anstoßen
Fehlerbehandlung ist natürlich ein muss. Die PDFs dürfen nur gelöscht werden, wenn die Umwandlung erfolgreich war. Genauso muss es eine Fehlermeldung geben, wenn die Weiterverarbeitung fehlerhaft war.

Ist der Weg einen virtuellen Drucker zu verwenden überhaupt notwendig?

Bisher sind wir über den Ansatz Batch-Skript geangen. Der hat das Problem, dass Instanzen vom Reader (egal ob Adobe oder bspw. Foxit) offen bleiben. Das ist nicht schön.

Den Thread PDF Dokumente aus C# heraus drucken habe ich mir angesehen, das funktioniert auch sehr gut. Problem ist nur, dass es nicht automatisch ist und eben grafisch abläuft. Mein Wissen rund um C# und .NET ist sehr lückenhaft, bzw. ich bin Laie. Kann man dieses Beispiel so umbauen, dass es wenn möglich als Task laufen kann, die selbst terminiert und das VB-Skript anstößt?

799 Beiträge seit 2007
vor 13 Jahren

Ist Geld für eine PDF-Lib vorhanden?

Denn ein gangbarer Weg wäre über ein simples C#-Program mit ITextSharp oder Ähnliches die Files zu lesen und einfach als Bild-Datei rauszuschreiben.

Aber das kostet halt etwas bei einer komerziellen Verwendung.

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
888 Beiträge seit 2007
vor 13 Jahren

iTextsharp ist OpenSource und steht unter LGPL.
D.h. meines Erachtens es kann auch in kommerziellen Projekten verwendet werden.
Oder hab ich das falsch verstanden?

Ansonsten würde ich Dir auch den Weg vom Schlingel empfehlen, ist eine saubere, robuste und einfache Lösung.

M
Mackerlama Themenstarter:in
118 Beiträge seit 2008
vor 13 Jahren

Hi,

ITextSharp kam mir auch durch die Forensuche in den Sinne. Es erschien mir nur zu"Overheat"-artig zu sein.

Geld sollte das ganze eigentlich nicht kosten.

p.s. was heißt eigentlich kommerzieller Einsatz? Im Endeffekt soll die Geschichte nur in einem Unternehmen zur Erleichterung dienen. Geld soll damit direkt nicht verdient werden. (indirekt wird natürlich hoffentlich Geld in Form von weniger Arbeitszeit eingespart)

*edit*
Wie zum Geier kann ich mit iTextsharp PDF zu Tiff konvertieren?

888 Beiträge seit 2007
vor 13 Jahren

Wie zum Geier kann ich mit iTextsharp PDF zu Tiff konvertieren?

Ups, das geht tatsächlich nicht mit iTextSharp, nur umgedreht.
Aufgrund der Fehlinformation die ich Dir lieferte hab ich grad mal ausgiebig gegoogelt.
Ich habe keine freie Bibliothek gefunden, die PDF zu TIFF konvertieren kann, kommerzielle Bibliotheken gibt es reichlich.

Eine Idee hab ich allerdings noch, wie wäre folgendes:

Mit iTextSharp die PDF-Files einlesen, diese als JPG abspeichern, und die JPGs wieder zu einem TIFF konvertieren. Hab ich selbst noch nicht gemacht, sollte aber funktionieren.

Konvertierung von JPG zu TIFF sollte z.B. hiermit möglich sein:

FreeImage Project

M
Mackerlama Themenstarter:in
118 Beiträge seit 2008
vor 13 Jahren

Morgen,

danke für deine Hilfe.

den gestrigen Tag habe ich nur mit Suche nach Ansätzen verbracht und bin froh, dass du zu dem selben Ergebnis gekommen bist. (Nicht, dass ich zu doof zum googlen bin 😃 )

PDF --> JPEG --> TIFF klingt zwar etwas umständlich, aber wenn es zum gewünschten Ergebnis führt ist das ok.

Erlich gesagt habe ich geglaubt, dass "batch-pdf-silent-druck" viel trivialer zu lösen ist

888 Beiträge seit 2007
vor 13 Jahren

Naja, "batch-pdf-silent-druck" ist schon trivial, nur das TIFF macht das Problem.

1.820 Beiträge seit 2005
vor 13 Jahren

Hallo!

LGPL erlaubt die Verwendung in kommerziell genutzten oder vertriebenen Anwendungen, der Einsatz sollte in diesem Fall also kein Problem sein.

Ungeachtet dessen: Selbst wenn eine Anwendung nur innerhalb einer Firma verwendet werden soll ohne einen direkten Gewinn damit zu erzielen, bewirkt es ja trotzdem einen Mehrwert durch automatisierte Workflows für die einsetzende Firma.

Nobody is perfect. I'm sad, i'm not nobody 🙁

Gelöschter Account
vor 13 Jahren

das tiff erstellt der virtuelle drucker.. sollte also kein problem sein. man muss nur mit einem bestimmten drucker drucken und gut ist.

in Batch ausgedrückt in etwa so:

@for %%a in ("\\quelle\*.pdf") do "C:\pfad von acrobat\AcroRd32.exe" /p /h "%%a"

p.s. was heißt eigentlich kommerzieller Einsatz?

Heißt: Einsatz in einem Umfeld, welches grundsätzlich Gewinnabsichten verfolgt. Ich schätze mal, das deine Firma schon Gewinnabsichten verfolgt und dabei ist es unerheblich ob direkt durch den verkauf des Tools oder indirekt durch die Verwendung des Tools.

M
Mackerlama Themenstarter:in
118 Beiträge seit 2008
vor 13 Jahren

in Batch ausgedrückt in etwa so:

@for %%a in ("\\quelle\*.pdf") do "C:\pfad von acrobat\AcroRd32.exe" /p /h "%%a"  

Dieses Vorgehen hat aber den unschönen Nebeneffekt, dass die Adobe Reader Instanz geöffnet bleibt und das Skript nicht terminiert. Rumpfuschen à la warten und dann killen ist auch eher unschön. Wie lange sollte man warten? Große PDFs? Wie Erkennen, ob Druck/Konvertierung erfolgreich war?

Gelöschter Account
vor 13 Jahren

Wie lange sollte man warten? Große PDFs? Wie Erkennen, ob Druck/Konvertierung erfolgreich war?

Grob geschätzt und ins blaue geschossen.... sobald das Tiff da ist, war alles erfolgreich und abgeschlossen....

799 Beiträge seit 2007
vor 13 Jahren

Sorry, ich hab iText mit PDFSharp verwechselt.

Dort findest du - ziemlich gut versteckt - in einem Tutorial wie du dir aus dem PDF-File ein xgraphic-Objekt erzeugst und über dieses kannst du den Page-Inhalt natürlich beliebig auf Canvas zeichnen. Das resultierende Image-Objekt kannst du dann in TIFF abspeichern und Problem gelöst.

Zu dem Lizenz-Wirrwarr: Ich bin auf meiner kurzen Suche nach der Lib die ich ausprobiert habe - wie ich jetzt weiß war es nicht iTextSharp sondern PDFSharp - auf die iText-Seite gestoßen.

iText ist doppelt linzensiert und die kommerzielle Lizenz die Support beinhält ist zwar auch frei wie in Freiheit aber nicht frei wie in Freibier.

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
R
103 Beiträge seit 2009
vor 13 Jahren

@der-schlingel

Ich glaube da hast Du dich versehen was den Funktionsumfang von PdfSharp angeht.
Man kann nur selbst mit pdfsharp erstellte Xgraphics objekte als Bitmap und pdf ausgeben, nicht bereits existierende pdf Dateien.

Ich benutze die pdfsharp bibliothek sehr gerne fürs modifizieren von existierenden pdf Dateien, ein pdf to image geht damit aber (leider) nicht.

R
103 Beiträge seit 2009
vor 13 Jahren

@Joetempes

Gleiches gilt meines wissens für ITextsharp. Pdfs modifizieren kann man damit auch wunderbar, nur in ein Bild können beide Bibliotheken bereits existierende Pdfs nicht wandeln.

799 Beiträge seit 2007
vor 13 Jahren

8o stimmt - wie kam ich auf die Idee!?

Aber, ich hab hier etwas auf Codeproject gefunden sogar samt Source-Code. Die Lib ist in dem dafür nötigen Funktionsumfang auch gratis. (SolidFramework)

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
M
Mackerlama Themenstarter:in
118 Beiträge seit 2008
vor 13 Jahren

Hi, den Eintrag auf Code-Project hatte ich mir auch kurz angesehen, aber gedacht, dass die freie Version des Solid Frameworks nicht ausreicht. Wenn ich das Beispiel richtig verstehe, wird das Framework genutzt um die Seiten im PDF Dokument als Bitmap zu bekommen (evtl. anschließend Konvertierung).
Auf soliddocuments.com ist die Option "Render PDF pages as bitmaps (for thumbnails) Note: Free version includes watermark." für die "free" Version angehakt. Nunja es handelt sich ja nicht um Vorschaubilder und Wasserzeichen sind auch nicht erwünscht.

X
1.177 Beiträge seit 2006
vor 13 Jahren

huhu,

ähh, ich werf noch GhostScript in den Raum. Kann imho sagar pdf zu tiff direkt.

😃

Xynratron

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

M
Mackerlama Themenstarter:in
118 Beiträge seit 2008
vor 13 Jahren

Hallo, also ich habe nun etwas rumgespielt und u.a. das Beispiel von Codeproject bezüglich SolidFramework angepasst und es läuft. Problem ist nur das Wasserzeichen. Auf jeder Seite ist eben unten ein SolidFramework Hinweis. Das jährliche Erwerben einer Lizenz ist der Haken. Es soll kein Geld kosten.

Der Ansatz über Ghostscript wäre super. Jedoch bekomme ich Probleme mit Schriftarten nicht gelöst. Manche PDFs werden konvertiert andere wiederum nicht. (u.a. lautet eine Fehlermeldung, dass die Truetype Schriftart Arial nicht verfügbar ist ... sehr komisch) Dazu kommt, dass die Auflösung bei Ghostskript bzw. bei Konvertierung von PDF zu TIFF immer 72DPI ist. Das kann teilweise zu wenig sein. (für die Weiterverarbeitung werden Barcode ausgelesen).

J
1.114 Beiträge seit 2007
vor 13 Jahren

Es gibt auch virtuelle Imageprinter. Die kannst du als normale Drucker ansteuern, und erstellen dir dann Bilddateien für jede einzelne Seite. Das über Code sauber anzusteuern ist aber sicherlich auch nicht ganz optimal. Aber als Idee wollte ich es aber trotzdem mal in den Raum stellen.

M
Mackerlama Themenstarter:in
118 Beiträge seit 2008
vor 13 Jahren

ja das ist bekannt. aber um mit diesen zu drucken (ohne verwendung einer api/schnittstelle) brauchst du ein programm wie z.b. den acrobat reader oder foxit reader. diese kann man per console ansteuern und den druck veranlassen. jedoch muss man sich dann um das killen der instanz bemühen, sonst blockiert der vorgang. bei vielen pdfs eine blöde lösung.
der ansatz per api/schnittstelle ist ja quasi der ghostscriptansatz.

mit -r300 -sDEVICE=tiff24nc passt nun auch die Qualität. Das Font-Probleme untersuche ich noch.