tag:blogger.com,1999:blog-73487115009843118192024-02-07T05:44:13.281+01:00PDF ... inside and outsidemeine Gedanken und zukünftigen Pläne zum Thema PDFIngo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-7348711500984311819.post-70281093089901405972022-01-25T23:00:00.001+01:002022-01-25T23:12:24.185+01:00Waschtag für PDF-Dokumente und -FormulareWie ich bereits vor Jahren in meinem Blog erklärt habe, verwenden Adobe-Produkte zur Formularerstellung eingefügte Prüfsummen-/Verschlüsselungsroutinen, um zu prüfen, ob ein Formular (ursprünglich erstellt von einem Adobe-Tool) von einem Drittanbieter-PDF-Tool geändert wurde.<br>
Was bedeutet das? Wenn ein mit einem Adobe-Tool erstelltes PDF-Formular oder PDF-Dokument von einem Drittanbieter-Tool geändert wurde - Daten ausfüllen und im Formular speichern ist schon eine Änderung - und anschließend wieder vom Adobe-Reader geöffnet wird, sind alle Formularfelder nicht mehr verwendbar! Das ehemalige Formular ist nur noch ein einfaches Dokument und es erscheint eine hässliche Popup-Meldung wie nachstehend:<p>
<i>"Durch dieses Dokument wurden erweiterte Funktionen in Adobe Acrobat Reader aktiviert. Da das Dokument seit seiner Erstellung geändert wurde, sind die erweiterten Funktionen nicht mehr verfügbar. Wenden Sie sich an den Autor, um die Originalversion dieses Dokuments zu erhalten."
</i><p>
Ich selbst habe diese Erfahrungen mit PDF-Dokumenten gemacht, die mit den Adobe-Produkten "InDesign" und "LiveCycle Designer" erstellt wurden.<p>
<p>
<b>Aber mit solchen Problemen ist jetzt Schluss.</b> Ich habe nun eine cmd-exe veröffentlicht, die die beschriebenen Einschränkungen und viele gesetzte Nutzungsrechte innerhalb von Sekunden aufhebt. Ich habe sie "Unlock_ALD" (als 32- und 64-Bit-Version) genannt und sie arbeitet als Consolen-Applikation unter Windows.<p>
Verarbeiten Sie eine unbekannte pdf-Datei zuerst mit Unlock_ALD - anschließend können wir mit dem Adobe Reader und dem Foxit Reader und jedem Drittanbieter-Tool und vielleicht am Ende wieder mit einem Adobe-Produkt arbeiten... ohne diese lästigen Einschränkungen.<p>
<b>Es gibt vier Möglichkeiten, Unlock_ALD zu verwenden:</b><br>
1. Direkt von der Windows-Kommandozeile (cmd).<br>
2. In Ihren Batch-Skripten (bat- oder cmd-Dateien).<br>
3. Aus dem Explorer-Kontextmenü über "Senden an...".<br>
4. Innerhalb Ihrer eigenen veröffentlichten/vertriebenen Anwendungen und Projekte mittels Shell-Syntax.<p>
[ mehr Details dazu lesen Sie bitte auf meiner Website unter "Produkte"... <a href="https://www.is-soft.de/mprod26.html">Mehr Informationen zu Unlock_ALD</a> ]<p>
<p>
<p>
<p>
<p>
[Alle verwendeten Marken-, Produkt- und Firmennamen unterliegen dem Copyright der jeweiligen Firmen und gehören diesen Firmen oder Einzelpersonen.]<p>
<p>
<p>
Viele Grüße und einen schönen Tag,<br>
Ingo Schmökel
Ingo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.com0tag:blogger.com,1999:blog-7348711500984311819.post-87068730814974090342019-12-05T21:23:00.000+01:002019-12-05T21:37:09.109+01:00PrPages - Individuelle Erweiterungen... Alles ist möglich!PrPages dient zur Ermittlung der farbigen und monochromen (b/w oder grau) Seiten eines PDF-Dokuments.<br />
Dieses kann z.B. zur präziseren Kostenermittlung bei Kopier-Aufträgen dienen oder bei der Druckkosten-Ermittlung von Unternehmensteilen bzw. Abteilungen.<br />
<br />
<b>Wenn man nur die Entscheidung hat, ob es ein monochromer Ausdruck oder ein farbiger Ausdruck werden soll, kann eine einzige Farbseite in einem 30-seitigen PDF-Dokument aus einer - eigentlich - Schwarz/Weiß-Kopie eine sehr viel teurere Farbkopie machen. Das tut natürlich weh, wenn man rechnen muss ;-)</b><br />
Nun wieder zu PRPages... Welche Seite hat farbige Elemente, welche ist komplett schwarz/weiß wissen wir. Das hilft bei der Kostenreduzierung im Druckbereich aber nur eventuell. Ideal wäre es doch, wenn man die u.U. wenigen Farbseiten extrahieren könnte und die paar extra Farbseiten getrennt drucken bzw. kopieren könnte.<br />
<br />
Ein Interessent ist mit dieser Frage bzw. Problematik an mich herangetreten... ob ich dafür eine individuelle Lösung entwickeln könnte. <br />
<br />
Nach einiger Überlegung ist mir das kostenlose Tool PDFtk wieder in den Sinn gekommen. Das Kommandozeilen-Tool PDFtk bietet u.a. Funktionen zum Verbinden einzelner PDF-Seiten zu einem neuen Dokument, zum Zerlegen von PDF-Dokumenten in einzelne Seiten, zum Verbinden einzelner Seiten nach Vorgabe zu einem neuen Dokument und vieles weitere.<br />
PDFtk und der CMD-Befehlssatz von Microsoft zur Erstellung von BATchdateien (ja... die mit der Endung BAT) müssten eigentlich genügen, um die gewünschte individuelle Lösung kostenfrei realisieren zu können.<br />
<br />
<span style="font-size: large;"><span style="font-size: small;"><b>1. Schritt</b></span></span><br />
PRPages erzeugt zu einem PDF-Dokument die entsprechende CSV-Datei mit einzelnen Angaben (Seite für Seite) zur Farbverwendung.<br />
<br />
<b>Eine BAT-Datei im gleichen Verzeichnis wie PrPages könnte dazu wie folgt aussehen:</b><br />
<br />
@echo off<br />
if "%~1"=="" goto eingabe1<br />
set testvar1=%~1<br />
IF EXIST zeilen.txt del zeilen.txt<br />
IF EXIST zeilen.csv del zeilen.csv<br />
prpages %testvar1% E 00 zeilen.csv<br />
ren zeilen.csv zeilen.txt<br />
goto ende<br />
:eingabe1<br />
echo Der 1. Parameter Eingabedatei (wie z.B.: "c:\temp\katalog.pdf") fehlt!<br />
goto ende<br />
:ende<br />
<br />
Der variable Aufruf dieser BAT-Datei (wir nennen sie mal get_colors.bat) von der Kommandozeile aus könnte z.Bsp. wie folgt aussehen:<br />
<br />
<i>get_colors c:\temp\katalog.pdf</i><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioYblcfUytJxMUuYt85HiNh953TKjUgtCOstTMb0DpZsc0ZjcNtE2I8OWX0ublJZzCPf5ocEUibA2_rIXnJ-vZ6IrZQBOayOGlsdCorrZjiBIwodHL1XQzZvkPbyUgocs3ED4Z72_RLbah/s1600/b1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="180" data-original-width="446" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioYblcfUytJxMUuYt85HiNh953TKjUgtCOstTMb0DpZsc0ZjcNtE2I8OWX0ublJZzCPf5ocEUibA2_rIXnJ-vZ6IrZQBOayOGlsdCorrZjiBIwodHL1XQzZvkPbyUgocs3ED4Z72_RLbah/s400/b1.jpg" width="400" /></a></div>
<br />
<b> </b><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<b>Im Ergebnis bekommen wir eine Datei zeilen.txt mit einem Inhalt ähnlich dem folgenden:</b><br />
<br />
c:\temp\pdftk\tutorial.pdf;1;842;595;color; <br />
c:\temp\pdftk\tutorial.pdf;2;842;595;color; <br />
c:\temp\pdftk\tutorial.pdf;3;842;595;bw/gray; <br />
c:\temp\pdftk\tutorial.pdf;4;842;595;bw/gray; <br />
c:\temp\pdftk\tutorial.pdf;5;842;595;bw/gray; <br />
<br />
<b>2. Die Farb- und Schwarz/Weiß-Seiten tatsächlich extrahieren und getrennt zu zwei neue PDF-Dateien zusammenfügen. </b><br />
<br />
Hierzu bedienen wir uns PDFtk, dass u.a. Funktionalität zum Zusammenführen einzelner Dateien anbietet.<br />
Das kann als Bsp. wie folgt aussehen:<br />
<br />
<i>pdftk c:\temp\katalog.pdf cat 2 5 8 9 12 output ausgabec.pdf</i><br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrAWgjsKMOps838rdcEJWKUTS-hpI60TBmpLF9Q2nR-3DQtC08Imef0lam4cwF9C16BaIPl7IS_pyMk9wgcvWs8M8GAANuZNdGlBr-EdD6e0bTpnOyUUzkkaocSPK2HXv7ZDU2jYsaJa7n/s1600/b2.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="174" data-original-width="629" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrAWgjsKMOps838rdcEJWKUTS-hpI60TBmpLF9Q2nR-3DQtC08Imef0lam4cwF9C16BaIPl7IS_pyMk9wgcvWs8M8GAANuZNdGlBr-EdD6e0bTpnOyUUzkkaocSPK2HXv7ZDU2jYsaJa7n/s400/b2.jpg" width="400" /></a><i> </i><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Wir müssen also aus der Datei zeilen.txt die Seitennummern für z.B. farbige Seiten herauslösen und daraus den String für den Seiten-Parameter von PDFtk aufbauen...<br />
<br />
<b>Die wichtige Zeile dazu in der BAT-Datei ist die folgende:</b><br />
<i>for /f "tokens=2 delims=;" %%i in ('findstr /C:";color;" %testvar2%') do echo %%i>>nur_color.txt</i><br />
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">tokens=2 ... steht dafür für die zweite Spalte in der CSV-Datei zeilen.txt, in der die Seitenangabe steht.<br />delims=; ... steht für den verwendeten Spaltentrenner.<br />findstr ... ist ein interner CMD-Befehl zur String-Suche in Dateien.<br />;color; ... steht für den String, nach dem gesucht werden soll.<br />%testvar2% ... enthält den Parameter aus dem Aufruf der/dieser BAT-Datei (z.B. die csv-Datei zeilen.txt).<br />do echo %%i>>nur_color.txt ... die Ausgabe der Zeilennummern in Zeilen, die ";color;" enthalten erfolgt in nur_color.txt.</span></span><br />
<b>nur_color.txt enthält jetzt als Inhalt untereinander die Seitennummern.<br />Daraus müssen wir jetzt noch einen String bilden:</b><br />
<br />
<i>FOR /F %%i in (nur_color.txt) do call set "Myvar1=%%Myvar1%% %%i"</i><br />
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">for ... steht für Schleifenverarbeitung.<br />%%i ... enthält als Variable den eingelesenen Zeileninhalt (die Seitennummern).<br />nur_color.txt ... ist unsere Datei mit den Seitennummern der farbigen Seiten.<br />Myvar1 ... steht namentlich für die Variable zum Aufbau des Seitennummernstrings.<br />%%Myvar1%% ... steht für den Inhalt der Variable Myvar1<br />Myvar1=%%Myvar1%% %%i ... steht also für Myvar1=bisheriger Inhalt von Myvar1 plus neuer Inhalt für Myvar1</span></span><br />
Myvar1 enthält am Schluß der Schleifenverarbeitung einen String wie z.B. 2 5 8 9 12.<br />
<b>Die abschließende Zeile in der BAT-Datei kann dann wie folgt aussehen:</b><br />
<i>pdftk %testvar1% cat %Myvar1% output ausgabec.pdf</i><br />
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">%testvar1% ... enthält die Angaben zum originalen PDF-Dokument.<br />cat ... ist eine Anweisung aus PDFtk zum Herauslösen von Seiten.<br />%Myvar1% ... enthält den String mit den Seitennummern aus Variable Myvar1.<br />output ... ist eine Anweisung aus PDFtk zum Wegschreiben der Seiten in eine neue Datei.<br />ausgabec.pdf ... enthält abschließend im Bsp. die Farbseiten 2, 5, 8, 9 und 12.</span></span><br />
Abschließend dazu die ganze BAT-Datei mit einigen - hoffentlich selbsterklärenden - zusätzlichen Zeilen.<br />
Um das Ganze komplett zu machen, ist darin auch die Aufbereitung der schwarz/weiß-Seiten enthalten:<br />
<br />
@echo off<br />
if "%~1"=="" goto eingabe1<br />
set testvar1=%~1<br />
if "%~2"=="" goto eingabe2<br />
set testvar2=%~2<br />
SET "Myvar1="<br />
SET "Myvar2="<br />
IF EXIST nur_color.txt del nur_color.txt<br />
IF EXIST nur_bwgray.txt del nur_bwgray.txt<br />
for /f "tokens=2 delims=;" %%i in ('findstr /C:";color;" %testvar2%') do echo %%i>>nur_color.txt<br />
for /f "tokens=2 delims=;" %%i in ('findstr /C:";bw/gray;" %testvar2%') do echo %%i>>nur_bwgray.txt<br />
FOR /F %%i in (nur_color.txt) do call set "Myvar1=%%Myvar1%% %%i" <br />
for /f %%i in (nur_bwgray.txt) do call set "Myvar2=%%Myvar2%% %%i"<br />
IF EXIST ausgabec.pdf del ausgabec.pdf<br />
IF EXIST ausgabeb.pdf del ausgabeb.pdf<br />
echo Colorseiten: %Myvar1%<br />
pdftk %testvar1% cat %Myvar1% output ausgabec.pdf<br />
echo BW-Gray: %Myvar2%<br />
pdftk %testvar1% cat %Myvar2% output ausgabeb.pdf<br />
goto ende<br />
:eingabe1<br />
echo Der 1. Parameter PDF-Eingabedatei (wie z.B.: "c:\temp\katalog.pdf") fehlt!<br />
goto ende<br />
:eingabe2<br />
echo Der 2. Parameter CSV-Datei (mit Farbangaben) (wie z.B.: "c:\temp\zeilen.txt") fehlt!<br />
:ende<br />
<br />
Der variable Aufruf dieser BAT-Datei (wir nennen sie mal get_pages.bat) von der Kommandozeile aus könnte z.Bsp. wie folgt aussehen:<br />
<br />
<i>get_pages c:\temp\katalog.pdf c:\temp\zeilen.txt</i><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA1uizL_l1DCW-2qCBp_d7liHzpYezDsE54qhLdRQ3oDuyNPFGMiJohGZXbCZyciYCpTuuFbfXFNB6wxikIdliv57ZvbZiUjpIy5fV2l5R6-BQTIAvRUH5ZQ913vQow7UDHfFB2MlA0VRX/s1600/b3.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="169" data-original-width="533" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA1uizL_l1DCW-2qCBp_d7liHzpYezDsE54qhLdRQ3oDuyNPFGMiJohGZXbCZyciYCpTuuFbfXFNB6wxikIdliv57ZvbZiUjpIy5fV2l5R6-BQTIAvRUH5ZQ913vQow7UDHfFB2MlA0VRX/s400/b3.jpg" width="400" /></a><i></i><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<b>Im Ergebnis bekommen wir aus der originalen Datei (die erhalten bleibt) zwei neue Dateien - eine mit farbigen PDF-Seiten, eine mit schwarz/weiß-Seiten, die dann zum Copyshop bzw. auf den Farb- oder Schwarz/Weiß-Laser gehen können.</b>Ingo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.com0tag:blogger.com,1999:blog-7348711500984311819.post-7955305365793446012015-05-29T21:17:00.001+02:002015-05-29T21:17:12.572+02:00Die dpi-Werte von PDF- und BilddateienGerade erhielt ich die Mailanfrage eines Kunden wie man sicher die dpi-Werte von PDF- und Bilddateien ermitteln kann...<br />
<br />
Den dpi-Wert kann man relativ leicht ausrechnen.<br />
1 dpi entspricht 1 Pixel pro Zoll und 1 Zoll sind 2,54 cm.<br />
Eine Bilddatei mit einer Breite von 1024 Pixel und 10 cm Breite hat einen dpi-Wert von ( 1024 x 2,54 ) / 10 ... also in diesem Fall 260 dpi.<br />
<br />
Ein DIN A4 PDF hat die Standardabmessungen von 595 x 842 Pixeln.<br />
Mit 21 cm Breite und einer Pixelbreite von 595 sind das:<br />
( 595 x 2,54 ) / 21 ... also die berühmten 72 dpi.<br />
<br />
Wenn z.B. eine DIN A4-PDF-Seite direkt zur Bilddatei gerendert wird, ist die Qualität deswegen nie so besonders toll, weil immer nur die 72 dpi dabei herauskommen können.<br />
<div>
<br /></div>
Ingo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.com0tag:blogger.com,1999:blog-7348711500984311819.post-83955419740681331482014-12-23T09:20:00.003+01:002014-12-23T09:27:59.691+01:00Foxit versus Adobe ... oder auch "David gegen Goliath"Adobe hat als treibende Kraft das von ihnen publizierte PDF-Format als einen "Quasi-Standard" besonders auch für Online-Dokumente etabliert. Ein Dokumenten-Standard sollte auch für alle Anwender nutzbar (lesbar) sein und so gab es von Adobe den kostenlosen Adobe Reader für PDF-Dokumente.<br />
<br />
PDF-Dokumente müssen natürlich auch irgendwann mal erstellt worden sein. Einmal die normalen Dokumente aber gerade auch für Formulare ist das PDF-Format gut geeignet. Durch Einbettung von z.B. JavaScript-Aktionen und Schaltflächen kann den Formularen viel Eigenleben eingehaucht werden. Für alle diese Dinge gibt es eine ganze Reihe von Adobe Produkten - kostenpflichtige Produkte, die im hohen drei- ... meistens vierstelligen Bereich liegen.<br />
<br />
Seit Version 1.0 der PDF-Spezifikationen sind viele Jahre vergangen und mit jeder neuen Version des kostenlosen Adobe Readers wuchs dessen Installationsumfang um viele MBs. Dieser Umstand rief die Open Source Community auf den Plan. Auf Basis einer Open Source Bibliothek wie z.B. GhostScript wurden alternative Möglichkeiten der kostenlosen PDF-Erstellung in Form von Druckertreibern (einbindbar in z.B. Office-Produkten) veröffentlicht. Beispiele hierfür sind z.B. der PDFCreator und FreePDF. Daneben gibt es inzwischen auch eine Reihe kostenloser PDF Reader, die teilweise nicht mal installiert werden müssen sondern - als portable Version - einfach auf die <br />
Festplatte kopiert funktionsfähig sind.<br />
<br />
Der - meines Wissens - bekannteste Vertreter der alternativen PDF Reader ist der Foxit Reader. Während z.B. eine Adobe Reader 10 Installation mit einem Umfang von 457 MB daherkommt, sind es beim Foxit Reader 5.4.2 schlanke 44 MB! ... Und wenig MBs bedeuten wenig PLatz auf Festplatten und ein schnellerer Start der Anwendung! Als kleiner Tipp: Wer wirklich nur ein "PDF-Anzeige-Programm" benötigt, dem möchte ich "Sumatra PDF" (besonders auch in der portablen Version) ans Herz legen. Mehr braucht man oft nicht.<br />
<br />
Was treibt ein großes Unternehmen wie Adobe dazu an, mit dem PDF-Format einen "quasi" Dokumentenstandard zu etablieren? ... Natürlich auch das - völlig legitime - Geldverdienen ;-) So gibt es inzwischen natürlich nicht nur den Adobe Reader sondern auch die hochpreisigen Produkte aus der Adobe Acrobat-Reihe, die alles rund um die Erstellung von PDF-Dokumenten ermöglichen.<br />
<br />
Das so etwas - mit vergleichbarer Qualität - auch günstiger geht, beweist die Foxit Corporation - Hersteller des kostenlosen Foxit PDF Readers. Gestartet mit dem Reader, den es inzwischen neben Windows für so ziemlich jede technische Basis (auch iOS und Android) gibt, bietet das Unternehmen eine ganze Reihe schlanker und kostengünstiger Produkte für die PDF-Entwicklung und -Bearbeitung an. Das reicht von Anwendungen zur PDF-Bearbeitung und -Erstellung bis hin zu kompletten Entwickler-SDKs. Das alles mit einem "preislich sehr zurückhaltenden" Lizenzverfahren.<br />
<br />
Als Entwickler im PDF-Umfeld habe ich natürlich mehrere Produkte und Versionen von PDF-Readern und auch verschiedene Adobe Reader Versionen installiert. Alleine schon, um sagen zu können "läuft auch auf Adobe...". In meinem alltäglichen Geschäft nutze ich allerdings <br />
nur den Foxit Reader - Probieren Sie es aus ;-)Ingo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.com0tag:blogger.com,1999:blog-7348711500984311819.post-85428057002025436202013-12-19T15:04:00.001+01:002013-12-19T15:04:10.580+01:00PrPages unterstützt jetzt auch "Grauwert-Toleranz"!Mit der nun implementierten Unterstützung für "Grauwert-Toleranz" hat PrPages ein ausgereiftes Stadium erreicht. Was ist Sinn und Zweck dieses Wertes, den manche auch als "Grau-Schwellenwert" bezeichnen?<br />
<br />
Manchmal ist es beim Betrachten von hellen bis sehr hellen Grauwerten ja tatsächlich so, dass man - je länger darauf geschaut wird - irgendwann gar nicht mehr weiß, ob es tatsächlich grau ist oder ob da nicht doch ein ganz leichtes Lila, Pink oder ganz helles Blau schimmert. Aufgrund dieses Umstandes arbeiten eine Reihe Druckertreiber optional mit der "Grauwert-Toleranz".<br />
<br />
PrPages untersucht die RGB-Farbwerte jedes Pixels einer zu druckenden Seite. So hat man dann einen Wert für Rot, einen für Grün und einen für Blau. Die Werte reichen dabei jeweils von 0 bis 255. Bei echten Grauwerten sind diese drei Farbwerte absolut identisch. Da aber auch leichte Abweichungen durchaus noch als Grauwert interpretierbar sind, kann man eine Grauwert-Toleranz festlegen, bis zu deren Wert Dokumente noch mit echten Grauwerten ausgedruckt werden. So kann z.B. eine Grauwert-Toleranz von 10 dafür sorgen, dass auch Farbreihen wie R125 G121 B127 (mit einer Differenz von max. 6) noch als Grauwert ausgegeben werden.<br />
<br />
Wenn für Sie identische Werte bei Druckausgabe und paralleler Verarbeitung wichtig sind, sollten Sie die neue Option "Grauwert-Toleranz" bei PrPages nutzen.Ingo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.com0tag:blogger.com,1999:blog-7348711500984311819.post-37992088638011444892012-12-03T22:43:00.001+01:002012-12-03T22:46:44.922+01:00Ermitteln farbiger Seiten in PDF-DokumentenIn den Servicebereichen ist die Berechnung der Druckkosten <br />
bei PDF-Dokumenten immer ein beliebtes Thema. Braucht der <br />
Drucker nur den günstigen schwarzen oder auch farbigen Toner?<br />
Wieviele farbige und wieviele schwarz-weiße Seiten druckt<br />
welcher Unternehmensbereich und mit welcher Papiergröße?<br />
<br />
Intern in der Struktur eines PDF-Dokuments gibt es die <br />
Device-Flags wie z.B. DeviceRGB, DeviceGray oder DeviceCMYK. <br />
Diese weisen zwar auf farbigen Inhalt hin - zwingend ist das <br />
aber nicht. Es kann durchaus sein, dass kein Device vorhanden <br />
ist - es trotzdem aber auch farbigen Inhalt im PDF-Dokument <br />
gibt. Genauso können beim DeviceGray trotzdem farbige Seiten <br />
im Dokument auftauchen und - anders herum - könnte ein Dokument <br />
mit DeviceRGB auch ohne farbigen Inhalt daherkommen.<br />
<br />
Ein großes Problem in den Servicebereichen, für das es auch<br />
Lösungen gibt - sehr teuere Lösungen.<br />
<br />
Ich biete in meiner Produktpalette die Lösung "PrPages" an.<br />
Es handelt sich dabei um eine sogenannte Commandline-Exe,<br />
die somit problemlos in Workflows und allen Anwendungen (in<br />
32- und 64-Bit-Windows-Umgebungen) einfachst einbindbar ist.<br />
<br />
Das Modul verfolgt den Ansatz, dass sich die tatsächlichen<br />
Farbinformationen in jedem einzelnen Bildpixel befinden<br />
und nur hierüber die Bestimmung wirklich sicher möglich ist.<br />
Beim Grafiktyp Bitmap enthält deswegen jedes Pixel drei Werte<br />
zur Farbsetzung auf Pixelebene. "PrPages" rendert die PDF-<br />
Seiten temporär im Hauptspeicher in's Bitmap-Format und prüft <br />
die Pixelwerte bzgl. der Farbinformationen auf schwarz-weiß <br />
und farbig. Im Ergebnis wird eine CSV-Datei erzeugt, die je <br />
nach optionaler Einstellung einen Eintrag pro Dokumentseite mit <br />
mit dem Dateinamen, der Seitennummer, Seitengröße und dem <br />
Hinweis auf b/w oder farbig enthält oder (übersichtlicher) einen <br />
Eintrag pro Datei mit den Angaben Dateiname, Gesamtseitenanzahl, <br />
Seitengröße der ersten Seite, Anzahl farbigen und Anzahl der <br />
b/w-Seiten.<br />
<br />
Es ist gelungen diese sichere Technik sehr performant auf-<br />
zubereiten. Auf meiner <a href="http://www.is-soft.de/pdfanalyzer/prod25.htm">Produktseite</a> unter www.pdf-analyzer.com<br />
finden Sie die "PrPages" als Testversion, um sich von der schnellen <br />
und zuverlässigen Arbeitsweise - vor dem Kauf - selbst zu überzeugen.<br />
<br />Ingo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.com0tag:blogger.com,1999:blog-7348711500984311819.post-56257244759679269452012-04-09T21:05:00.002+02:002012-12-03T23:08:17.395+01:00PDF, JavaScript und ungewollter CodeHallo meine lieben Leser!<br />
<br />
Im Zuge der Trojaner- und Virenangriffe tauchen immer mal wieder PDF-Dateien als Emailanhang auf, die beim Öffnen u.U. (je nach den Sicherheitseinstellungen auf dem lokalen Rechner) Schadsoftware installieren oder Systemeinstellungen ändern.<br />
<br />
Dieses funktioniert i.d.R. über die Interpretersprache JavaScript. Mittels eingebettetem JavaScript-Code kann die Funktionalität einer PDF-Datei stark erweitert werden. Der enthaltene Code wird mit bestimmten Systemereignissen wie z.B. OnLoad (also beim Öffnen einer PDF-Datei) gekoppelt und dann ausgeführt. Natürlich kann so etwas positiv als auch negativ (zu Ihrem Schaden) genutzt werden. PDF-Reader von Adobe und Foxit sind in der Lage Javascriptcode aus/in PDF-Dateien zu lesen und auszuführen.<br />
<br />
Standardmäßig wird die Verwendung von JavaScript bei Installation Ihres Adobe- oder Foxit-PDF-Readers mit aktiviert. Genauso haben Sie aber die Möglichkeit diese - oft nicht benötigte - Funktionalität wieder dauerhaft zu deaktivieren.<br />
<br />
Beim <span style="font-weight: bold;">Adobe Reader 9 oder z.B. 10</span> verwenden Sie hierfür den Menüweg:<br />
<br />
...Bearbeiten -> Voreinstellungen -> JavaScript...<br />
<br />
Im rechten Fensterbereich können Sie dann die Haken aus den Checkboxen bei<br />
"Java Script / Acrobat JavaScript aktivieren" und<br />
"Java Script Sicherheit / Menübefehlen Berechtigung zur Ausführung von JavaScript erteilen"<br />
entfernen.<br />
<br />
Beim <span style="font-weight: bold;">Foxit-Reader 5</span> verwenden Sie hierfür den Menüweg:<br />
<br />
...Werkzeuge -> Einstellungen -> JavaScript...<br />
<br />
Entfernen Sie den Haken in der Checkbox bei<br />
"Java Script aktivieren".<br />
<br />
Wollen Sie sich mit solchen Dingen gar nicht beschäftigen und genügt Ihnen i.d.R. die einfache Anzeige einer PDF-Datei können Sie es mal mit dem kleinen, einfachen <span style="font-weight: bold;">Sumatra PDF Reader</span> probieren.<br />
<br />
Viele Grüße,<br />
Ingo SchmökelIngo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.com0tag:blogger.com,1999:blog-7348711500984311819.post-10269932416774658262011-03-02T22:22:00.000+01:002011-03-02T22:49:54.445+01:00PDFs aus Ihrer Anwendung druckenMeine lieben LeserInnen!<br /><br />Ich hatte eine Kundenanfrage bezügl. des Druckens aus eigenen Anwendungen heraus unter Zuhilfenahme eines installierten PDF-Readers (versuchen Sie Foxit... für mich der beste!).<br />Ich habe ein wenig mit der Keybd_Event-Syntax von Delphi/Pascal zum virtuellen Auslösen der Tastatur "herumprobiert"...<br />Wenn Sie Delphi oder Free Pascal verwenden, können Sie den u.a. Code direkt hinter ein OnClick-Ereignis einer Schaltfläche in Ihrer Anwendung kopieren. In anderen Programmiersprachen werden Sie eine sehr ähnliche Syntax für diesen Zweck finden (oder fragen Sie Dr.Google).<br />Mit der Zeitangabe bei der sleep-Syntax können Sie noch etwas herumprobieren...<br /><br /><b><small><span style="font-family:Courier New,Courier,monospace;">procedure TForm1.Button3Click(Sender: TObject);<br />begin<br />// At the uses-part don't forget the ShellAPI ;-)<br /><br />// Show/open the pdf-document ...<br /> ShellExecute(hinstance,'open',PChar('c:\temp\test.pdf'),nil,nil,SW_NORMAL);<br /><br /> sleep(2000); // sleep/wait for 2 seconds<br /><br />// Virtual Keys [Strg] + [P] to open the print dialog ...<br /> Keybd_Event(VK_CONTROL,0,0,0);<br /> Keybd_Event(Ord('P'),MapVirtualKey(Ord('P'), 0),0,0);<br /> Keybd_Event(Ord('P'),MapVirtualKey(Ord('P'), 0),KEYEVENTF_KEYUP,0);<br /> Keybd_Event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);<br /><br />// Virtual key [ENTER] to start printout ...<br /> Keybd_Event(VK_RETURN,1,0,0);<br /> Keybd_Event(VK_RETURN, 1, KEYEVENTF_KEYUP, 0);<br /><br /> sleep(2000); // sleep/wait for 2 seconds<br /><br />// Virtual keys [Alt] + [F4] to close the active reader-window ...<br /> Keybd_Event(VK_MENU,0,0,0);<br /> Keybd_Event(VK_F4,0,0,0);<br /> Keybd_Event(VK_F4,0,KEYEVENTF_KEYUP,0);<br /> Keybd_Event(VK_MENU,0,KEYEVENTF_KEYUP,0);<br /><br />end;<br /> </span></small></b>Ingo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.com0tag:blogger.com,1999:blog-7348711500984311819.post-60895876105465163412010-03-29T13:09:00.000+02:002010-03-29T13:10:44.284+02:00From PDF to SAP SmartForms ... AutomaticallyMy dear readers!<br /><br />The reason in short ...<br />We had planned a banking product for several eligible customers based on an extensive form management in SAP Smartforms. We were facing problems like "only pdf-forms available" or "old pdf-forms should be completely redesigned". For a bank this can mean that hundreds of forms have to be converted... and the time is always short ;-)<br /><br />Starting this project we knew that the needed new form creation in SAP Smartforms and the insertion of the recent pdf-forms into SAP would be the biggest time-package – not easy to be calculated. We discussed the idea to create a converter to manage at least the simple tasks of converting in an automatic way.<br /><br />We had to regard two starting positions:<br />There were pdf-forms which should be transfered to SAP.<br />There were pdf-forms which should be completely redesigned before transfering to SAP.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiHLZBOgl8_-V3arbpub0wte4JV-wlnIEysfkrkwQHN7p7aN54mTOcBiEnfzT5_UttR8Hybvc6iWAsSPaOJcpwFYQMDWHvlsj7WwJdjNWvViZDrd-5-NBAW5Pg_9YOqBXnUF4KMACZJvg/s1600/image01001.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 304px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiHLZBOgl8_-V3arbpub0wte4JV-wlnIEysfkrkwQHN7p7aN54mTOcBiEnfzT5_UttR8Hybvc6iWAsSPaOJcpwFYQMDWHvlsj7WwJdjNWvViZDrd-5-NBAW5Pg_9YOqBXnUF4KMACZJvg/s400/image01001.jpg" alt="" id="BLOGGER_PHOTO_ID_5454010720306134466" border="0" /></a><br /><br /><br /><br />Our basically idea was to extract the pdf-formfield data and properties, insert the data into an xml-structure and using the xml-uploadfunction in Smartforms as the final step. There were forms with less data and a clear structure but also very detailed and overcrowded structures. So we kept in mind that sometimes it would be probably necessary to turn a few screws directly in the converter source. The second part of the work should be the new designed forms. Here we started directly from scratch, creating doc-prototypes with associated technical files containing the formfield-properties. So no existing pdf-form for us. We decided to manage this problem with a different version of the converter. Both converter versions should be developed as a .NET-application. We used C# as ide.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAnjVS-PXMN5NvrFkalpV59SPiZ3e1ECBrURXO0_M5p1DAf1hCtPcipmldu2X4Y0yd9LWtQixH27ylvYHWXNELgCgF3Tuu7KjRjgjEq9xjUOcjo9a0lDhOCq09Ave6PIhgPtVdnDoRZ9U/s1600/image01003.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 229px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAnjVS-PXMN5NvrFkalpV59SPiZ3e1ECBrURXO0_M5p1DAf1hCtPcipmldu2X4Y0yd9LWtQixH27ylvYHWXNELgCgF3Tuu7KjRjgjEq9xjUOcjo9a0lDhOCq09Ave6PIhgPtVdnDoRZ9U/s320/image01003.png" alt="" id="BLOGGER_PHOTO_ID_5454008384585356610" border="0" /></a><br /><br /><br /><br />Behind the converter-gui there are batch-modules (developed with Delphi as commandline-tools) doing three jobs for us:<br />• Extracting the main form-properties like used fonts, the form dimensions, date and time of creation, and so on.<br />• Extracting all form-fields with name, position values and field-lengths.<br />• Converting the displayed form content into a tiff-file, regarding the SAP tiff-specifications and the needed dpi-value as a backgoundimage for Smartforms.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyJlgkFuMHAyWbznxOh93JySzOQM__5KezDMg9McqQU2X1JuxnBwlyb5zNlFbLxXBDmqbZ2PPE7lXtzK1Hw96UrHjq1IfJ5-GCdhll70AAvYYKSHFPwdNlagpFm4n1fLeUh8XsPc3Lgnw/s1600/image01007.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 121px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyJlgkFuMHAyWbznxOh93JySzOQM__5KezDMg9McqQU2X1JuxnBwlyb5zNlFbLxXBDmqbZ2PPE7lXtzK1Hw96UrHjq1IfJ5-GCdhll70AAvYYKSHFPwdNlagpFm4n1fLeUh8XsPc3Lgnw/s320/image01007.jpg" alt="" id="BLOGGER_PHOTO_ID_5454008857902270978" border="0" /></a><br /><br /><br /><br /><br />The next point was a valid xml-structure to have a look inside. We got it doing a local xml-download of an existing form from Smartforms. We analyzed it, determined the parts which would be always the same and the parts which would be changed programmatically with variable values. We splitted the xml-structure into constant and variable templates. In the templates we signed the significant positions with unique placeholders. Our converter should transform all these things like form properties, field data, reference to the backgroundimage, constant and modified templates as the final step into one new xml-file for the Smartforms-upload.<br /><br />To prepare Smartforms for the xml-upload first we have to create one single time a formstyle with all possible fontstyles used in the uploaded forms. Another point are the backgroundimages. They are created automatically while generating the upload-xml-structure but the local tiff-files still need to be transported into the SAP Form Graphics Administration (transaction SE78). At this time the referenced link is already in the xml-structure.<br /><br />So the steps for existing pdf-forms are:<br />• Starting the converter.<br />• Selecting a pdf-form and moving through the converter-steps.<br />• Uploading the new tiff-file via transaction SE78 into SAP.<br />• Uploading the new xml-file into SAP Smartforms.<br />• Activating the new form in Smartforms. …That’s it!<br /><br />At least the converter version for the non-existing forms… In this case the workflow is a bit different. The form properties are already extracted `cause we have the ascii-files with all form- and formfield-properties and bmp- or doc-prototypes.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj64Qzc2RIDUNCj2hI-RNgHWzrx3Yuhdi1zh5IaeFZs6lG6p1HaixMBF05FsWLXXOv8DqvkIo93EZfC8hTaZjG8J4twsxCyakmHbX9cYUlSrkUS1kNo9FPtsDMwSHCiQwYiJ4IlNbgzxZI/s1600/image01009.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 187px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj64Qzc2RIDUNCj2hI-RNgHWzrx3Yuhdi1zh5IaeFZs6lG6p1HaixMBF05FsWLXXOv8DqvkIo93EZfC8hTaZjG8J4twsxCyakmHbX9cYUlSrkUS1kNo9FPtsDMwSHCiQwYiJ4IlNbgzxZI/s320/image01009.png" alt="" id="BLOGGER_PHOTO_ID_5454009147130270754" border="0" /></a><br /><br /><br /><br /><br />First step is to convert the bmp- or doc-file into the tiff-format according to the SAP specifications. We’re using for this job the free graphic application „Gimp“. Although „Irfan View“ would be a good candidate for this job we should keep in mind that this application is only free for personal use. Then these tiff-files will be transfered into the SAP Form Graphics Administration (transaction SE78), too. Instead of grabbing the form- and field- properties from the pdf-form via commandline-tools the second version of the converter can read the needed data out of these technical ascii-files which come along with the bmp-prototype. At this stage the flow is the same. The xml-file will be created … uploaded …<br /><br />So the steps for completely new forms are:<br />• Converting the bmp-file into tiff-format<br />• Uploading the new tiff-file via transaction SE78 into SAP.<br />• Selecting the technical form-data-file moving through the converter-steps.<br />• Uploading the new xml-file into SAP Smartforms.<br />• Activating the new form in Smartforms. …That’s it!<br /><br />There’s one restriction: The described procedures concentrates themselves on the main task – creating single-page-forms. Sure it’s possible to enhance the converters for multi-page-forms but in our special case the cost-benefit ratio wouldn’t have a good relationship.<br /><br />All together we had to convert approximately 300 forms. Normally this work would have lasted 100 days. With our converters we could do this job in less than 10 days!Ingo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.com0tag:blogger.com,1999:blog-7348711500984311819.post-29978780449230955812009-11-18T20:30:00.000+01:002009-11-18T20:35:23.055+01:00"Schnelle Webanzeige" ... Einmal anders!Meine lieben Leser!<br /><br />Bieten Sie auf Ihren Webseiten PDF-Dokumente zum Download an?<br />Sind es sehr große Dokumente?<br />Haben Sie nur begrenzten Inklusiv-Traffic in Ihrem Web-Package?<br /><br />Um böse Überraschungen zu vermeiden und neue interessierte Besucher zu gewinnen, sollten Sie mal meine Anwendung <span style="font-weight: bold;">PDF-Analyzer Pro<span style="font-weight: bold;"></span></span> oder (für den Batch-Einsatz) <span style="font-weight: bold;">PDFIndexCut</span> ausprobieren.<br />Ich werde Ihnen erzählen warum ...<br /><br />Wenn Sie ein neues, umfangreiches PDF-Dokument auf Ihre Online-Präsenz laden, sollten Sie auch an den Leser mit sehr begrenzter Bandbreite bzw. schlechter Internetanbindung denken.<br />Auch aktivierte Optionen wie "schnelle Webanzeige" beim Erstellen des Dokuments können nicht verhindern, dass sich zwar die ersten Seiten dem interessierten Leser schnell öffnen... im Hintergrund aber immer mehr vom Dokument auf dem lokalen Speicherplatz heruntergeladen wird. Oft genug merkt der Leser nach wenigen Seiten, dass das Dokument für ihn nicht hilfreich ist. Ein nutzloser Download für ihn und nutzloser Traffic für den Website-Betreiber.<br /><br /><span style="font-weight: bold;">PDFIndexCut</span> ermöglicht die Trennung eines Dokumentes in zwei Teile - Das erste können wir Indexteil nennen während der zweite Teil das eigentliche Dokument enthält. Der Indexteil sollte nur die Titelseite des Dokuments, das Inhaltsverzeichnis und event. noch ein paar Einstiegsseiten enthalten. Im Indexteil gibt es frei positionierbare Links, die auf den Hauptteil verweisen.<br /><br />Sind diese beiden Dokumentteile online, kann der interessierte Besucher den kurzen Indexteil lesen und einen ersten Eindruck darüber gewinnen, ob das gesamte Dokument für ihn nützlich und lesenswert sein kann. Wenn dem so ist kann er im Indexteil den Link zum Hauptdokument aktivieren, um das gesamte Dokument zu lesen bzw. herunterzuladen. Wenn schon der Indexteil nicht den Vorstellungen entsprach, gibt es nur einen sehr kleinen Download und keinen mehrere Mbytes großen nutzlosen PDF-Download, der den lokalen Speicherplatz zumüllt und Sie als Website-Betreiber halten den Traffic niedrig.<br /><br /><span style="font-weight: bold;">PDFIndexCut</span> hat Parameter für die Seitennummer, nach der das Dokument getrennt werden soll, für die Linkposition zum Hauptdokument, für den angezeigten Linktext, ... <span style="font-weight: bold;">PDFIndexCut</span> ist sehr flexibel und wird Ihren Ansprüchen genügen.<br />Haben Sie nur wenig Dokumente zu bearbeiten, können Sie auch meine Anwendung <span style="font-weight: bold;">PDF-Analyzer Pro</span> (für den Dialogbetrieb) verwenden - es hat die Funktionalität aus <span style="font-weight: bold;">PDFIndexCut</span> implementiert.<br />Versuchen Sie es mal ... Die Testversion gibt's online.Ingo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.com0tag:blogger.com,1999:blog-7348711500984311819.post-88434887931829275372009-09-23T10:23:00.000+02:002009-09-24T20:40:36.060+02:00Unter der Oberfläche ...<span style="font-style:italic;"></span><br />Haben sie sich beim Ansehen einer PDF-Datei schonmal überlegt, wie es wohl "da drinnen aussieht"? Ein gewisses technisches Interesse vorausgesetzt, kann das ganz interessant sein und ihnen manches "Aha-Erlebnis" bieten.<br /><br />Was benötigen sie dafür? Nichts, was sie nicht schon hätten ... Probieren sie einfach den Editor "Notepad" aus ihrem Windowssystem (sie finden ihn unter Programme -> Zubehör -> Editor). Mit etwas Glück werden sie feststellen, dass auch der interne PDF-Code durchaus lesbar sein kann.<br /><br />Die erste Information erhalten sie gleich am Dateianfang. Da taucht dann z.B. "%PDF-1.3%âãÏÓ" auf.<br />Einige der Zeichen können wir vernachlässigen aber das "PDF" sagt uns schonmal (als hätten wir's gewußt), dass es sich hier um eine PDF-Datei handelt und das "1.3" zeigt an, dass diese Datei bei der Erstellung funktional an die (schon etwas ältere) PDF-Spezifikation 1.3 angelehnt wurde.<br />Jetzt sollten sie die Suchen-Funktion ihres Editors benutzen:<br />Suchen sie mal nach "FontName". Sicher werden sie diesbezüglich öfter im Code auf entsprechende Einträge stoßen und so alle eingebetteten Schriften in ihrem Dokument finden. Ein Eintrag könnte z.B. so aussehen: "/FontName/Arial-BoldItalicMT/".<br />Interessante Tags zum Suchen sind außerdem "Creator", "CreationDate", "Producer", "ModDate", "Title", "Keywords" oder z.B. "Subject". Nicht alle Tags müssen vorhanden sein. Gibt es keinen gepflegten Titel für das Dokument, fehlt auch der entsprechende Tag "Title". Ist das Dokument verschlüsselt, ist der Text hinter den Tags so einfach leider nicht lesbar - gibt ihnen so aber auch die Information, dass das Dokument verschlüsselt ist.<br />Zum Abschluß noch den interessanten Tag "Count" oder auch "/Count". Dahinter folgt die Seitenanzahl des PDF-Dokuments. Das könnte dann so aussehen: ".../Count 9/...". <br /><br />Habe ich etwas Appetit auf PDF gemacht? Gehen sie mal auf Entdeckungsreise ;-)Ingo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.com0tag:blogger.com,1999:blog-7348711500984311819.post-84148915571142880992009-06-20T13:55:00.000+02:002009-06-24T07:44:22.291+02:00PDF und FormulareMeine lieben Leser!<br /><br />Heute möchte ich mal über PDF und Formulare reden. Ein gutes Thema für Adobe - kann man mit diesem Thema doch noch gutes Geld verdienen ;-)<br /><br />Was haben wir uns nicht immer gefreut, wenn wir ein PDF-Formular sauber, digital (und nicht handschriftlich) am PC ausfüllen konnten und dann ... ja und dann ausdrucken konnten (weil ein Speichern leider nicht möglich war) ... und beim nächsten Mal wieder neu ausfüllen mußten :-(<br /><br />Das waren noch Zeiten... als man zum Lesen von PDF-Dokumenten eigentlich nur den kostenlosen Adobe Reader kannte.<br /><br />Nun ist das anders. Schon eine ganze Weile gibt es den allgemein sehr viel schnelleren, "schlankeren" Foxit Reader. Der kann eigentlich auch alles, was der "normale Anwender" vor dem Monitor braucht. ...Und er ermöglicht das Ausfüllen von PDF-Formularen, das Abspeichern dieser ausgefüllten Formulare, das erneute Aufrufen und Ändern der eingetragenen Werte, ...! Den Foxit Reader kann ich sehr empfehlen!<br /><br />Was tut nun der "große Erfinder des PDF"? Nein... er zieht nicht nach und ermöglicht nicht die Verarbeitung von Formularfeldern mit seinem Reader. Seine Produkte zur Formular-Erstellung integrieren bestimmte Kennzeichen und Routinen um zu prüfen, ob die originalen Formulare verändert wurden. Was passiert nun? ...Mit Adobe-Produkten erstellte Formulare werden mit Foxit ausgefüllt und sind anschließend bei Verwendung mit dem Adobe Reader ihrer Formularfeld-Funktionalität beraubt! <br /><br />Dieser Umstand ist mir gerade aktuell bei einem Formular aufgefallen, dass Mit dem Adobe Produkt "InDesign" erstellt wurde.<br /><br />Aber es gibt ja nichts, wofür man keine Lösung ersinnen könnte ;-)<br />ich werde ein Tool erstellen (als DLL oder richtige Applikation ... mal sehen ...), mit dem man die Formularbestandteile herauslösen und als neues Formular abspeichern kann. Irgendwelche Prüfroutinen werden so ignoriert und das neue Formular sieht (fast) aus wie das Original - läßt sich aber von allen bekannten PDF Readern be- bzw. auch verarbeiten.<br /><br />[Alle benutzten Warenzeichen und Firmenbezeichnungen unterliegen dem Copyright der jeweiligen Firmen.]<br /><br />Viele Grüße und einen schönen Tag,<br />Ingo SchmökelIngo Schmökelhttp://www.blogger.com/profile/17175648467163733582noreply@blogger.com0