1 2 3 4 5 6 7 8 9 10 11
#!/usr/bin/perl use strict; use warnings; use diagnostics; use PDF::Reuse; prDocDir('.'); prFile('test_pdf_reuse_out.pdf'); prField('[/test/]','test ersetzung'); prDocForm('test_pdf_reuse.pdf'); prEnd;
2013-09-16T05:58:22 FIFOIn Deinem PDF taucht der Text 'test' nicht auf (schau mal das PDF mit einem Text-/Hex-Editor an), er wird aus einem PDF-Objekt (stream) erzeugt und angezeigt.
2013-09-16T05:58:22 FIFODeswegen funktionieren Deine Versuche der direkten Textersetzung auch nicht. Es gibt durchaus 'Klartext'-Objekte in PDF, aber das kannst Du nicht voraussetzen. Und auch dann führt eine einfache Textersetzung idR nicht zum Ziel, weil Du damit Inkonsistenzen in den Metadaten erzeugst.
2013-09-16T05:58:22 FIFODein PDF enthält keine Formularfelder, die Du mit prField() ändern könntest.
1 2 3 4 5 6 7 8 9 10 11
#!/usr/bin/perl use strict; use warnings; use diagnostics; use PDF::Reuse; prDocDir('.'); prFile('test_pdf_reuse_neu_out.pdf'); prField('[/Test/]','test ersetzung'); prDocForm('test_pdf_reuse_neu.pdf'); prEnd;
2013-09-16T11:37:04 bianca
1 2 3 4 5 6 7 8 9 10 11
#!/usr/bin/perl use strict; use warnings; use diagnostics; use PDF::Reuse; prDocDir('.'); prFile('test_pdf_reuse_neu_out.pdf'); prField('Test','test ersetzung'); prDocForm('test_pdf_reuse_neu.pdf'); prEnd;
2013-09-16T21:23:22 FIFOWelche Version von PDF::Reuse hast Du?
2013-09-16T21:23:22 FIFOWenn es um JavaScript geht, hat sich im Lauf der Zeit einiges geändert (auch bei Adobe).
2013-09-16T21:23:22 FIFOVielleicht morgen.
2013-09-17T04:03:58 bianca0.35 mit Strawberry 5.10.1 auf Win 7 32 Bit.
2013-09-17T04:03:58 biancaDas heißt, das Modul ergänzt im PDF einen JS Code der das Feld befüllt? Ist das die Technik bei der ganzen Sache?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
4 0 obj
<</Type/Annot/Subtype/Widget/F 4
/Rect[87.3 735.9 214.9 754.6]
/FT/Tx
/P 1 0 R
/T(Test)
/V <FEFF>
/DV <FEFF>
/MaxLen 100
/DR<</Font 5 0 R>>
/DA(0 0 0 rg /F2 12 Tf)
/AP<<
/N 15 0 R
>>
>>
endobj
16 0 obj
<</Type/Catalog/Pages 6 0 R
/OpenAction[1 0 R /XYZ null null 0]
/Lang(de-DE)
/AcroForm<</Fields[
4 0 R
]/DR 14 0 R/NeedAppearances true>>
>>
endobj
1
2
3
22 0 obj<</S/JavaScript/JS ( function Ladda\(\) {if \(this.getField\('Test'\)\) this.getField\('Test'\).value = unescape\('foo'\); 1;}
function Init\(\) { if \(typeof this.info.ModDate == "object"\) { return true; }Ladda\(\);
} Init\(\); )>>endobj
QuoteprField - assign a value to an interactive fieldprField ( $fieldName, $value )
$fieldName is an interactive field in the document you are creating. It has to be spelled exactly the same way here as it spelled in the document. $value is what you want to assigned to the field. Put all your sentences with prField early in your script. After prFile and before prDoc or prDocForm and of course before prEnd. Each sentence with prField is translated to JavaScript and merged with old JavaScript