Autor Beitrag
Dhakiyah
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 327
Erhaltene Danke: 5

Windows 7
Delphi XE2
BeitragVerfasst: Do 14.08.14 15:12 
Hallo!
Wir haben folgendes Problem:
Mit dem LiveCycleDesigner von Adobe haben wir eine PDF erstellt und möchten diese nun mit dem Tool füllen und ausdrucken.

WENN wir im LiveCycleDesigner z.B. einem Textfeld einen Namen geben und diesen auch demensprechend über das Programm ansprechen, dann füllt er zwar das Textfeld, macht aber sämtliche Text raus...

Machen wir den Namen oder die Namen raus und sprechen diese nicht mehr über das Tool an, dann zeigt er uns wieder alles normal an, füllt aber natürlich dann keine Felder mehr...

Habt ihr da eine Idee?
Kennt jemand das Problem?

ausblenden volle Höhe Delphi-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
procedure Tfrm_mdi_uebersicht.cmd_druckenClick(Sender: TObject);
var  i_Anz, i, j: integer;
  sl_PDF: TStringList;
  s_PDFFeld: string;
  pdf_feld: TgtPDFFormField;
begin
  for I := 0 to fg_anzeigen.F_RowCount -1 do
  begin
    if trim(fg_anzeigen.GetCellText(col_drucken, i)) = 'J' then
    begin
      sl_PDF := TStringList.Create;
      sl_PDF.Delimiter := '|';
      sl_PDF.QuoteChar := '°';
      sl_PDF.StrictDelimiter := true;
      cmd_Drucken.Enabled := false;

      Erstelle_PDFSList( sl_PDF, -1'firma''TestFirma');


      PDF.LoadFromFile('Vorlagen\test.pdf');
      i_anz := PDF.GetFormFieldCount;
      if i_Anz> 0 then
      begin // wenn [0] dann alle aendern
        pdf_Feld := PDF.GetPDFFormField( 1);
        s_pdfFeld := pdf_Feld.FieldName;
        if Pos('[0]', s_PDFFeld) > 0 then
        begin
          for j:=0 to sl_PDF.Count -1 do
          begin
            sl_PDF.Strings[j] := sl_PDF.Names[j] + '[0]' + '=' + sl_PDF.ValueFromIndex[j];
          end;
        end;
      end;

 //     PDF.SetFormFields(sl_PDF);
      sl_PDF.Free;
      PDFView.PDFDocument := PDF;
      PDFView.Active := true;
      PDFPrint.PDFDocument := PDF;
      PDFPrint.PrintDoc;
      PDFView.Active := False;

      cmd_Drucken.Enabled := true;
    end;
  end;
end;




procedure Erstelle_PDFSList( var sl: TStringList; i_nr: integer; s_Name, s_Wert: string);
var i_Pos: integer;
  begin
    while Pos('''', s_wert) > 0  do
    begin
      i_Pos := Pos('''', s_wert);
      system.delete( s_Wert, i_Pos, 1);
      system.insert( sl.QuoteChar, s_Wert, i_Pos);
    end;
    if i_Nr >= 0 then s_Name := s_Name + IntToStr( i_Nr);
    if sl.Count = 0 then sl.DelimitedText := s_Name + '='+  s_Wert
    else sl.DelimitedText := sl.DelimitedText + sl.Delimiter + s_Name + '=' + s_Wert;
  end;


Versteht ihr das Problem?

_________________
Es ist soooo flauschig !!!