Отправить данные в PDF с Delphi - PullRequest
3 голосов
/ 31 января 2011

Есть ли способ, которым я могу отправить данные в свой файл PDF (заполнить поля / пробелы), вручную или с помощью стороннего компонента, файлы PDF имеют определенные поля, которые могут быть изменены пользователем, путем ввода чисел.. флажки и т. д.

как мне достичь этой цели, если для этого потребуется какой-либо сторонний компонент, который является лучшим, и каковы цены?

наша IDE для разработки - delphi 2010/ Delphi 2011 XE

спасибо:)

1 Ответ

2 голосов
/ 31 января 2011

Полагаю, вы хотите, чтобы ваше приложение создавало PDF-контент из поля интерфейса пользователя.

Это можно легко сделать из кода, используя генератор отчетов из кода, а затем механизм PDF .

Мы предлагаем решение с открытым исходным кодом только для этого , от Delphi 6 до XE.

Вот выдержка из кода из одной демонстрации , которые создают отчеты, используя некоторые поля пользовательского интерфейса в качестве источника (например, edt1.Text или mmo1.Text):

procedure TForm1.btn1Click(Sender: TObject);
  (...)
    with TGDIPages.Create(self) do
    try
      // the name of the report is taken from main Window's caption
      Caption := self.Caption;
      // now we add some content to the report
      BeginDoc;
      (...)
      // main content (automaticaly split on next pages)
      NewHalfLine;
      TextAlign := taJustified;
      s := 'This is some big text which must be justified on multiple lines. ';
      DrawText(s+s+s+s);
      NewLine;
      TextAlign := taLeft;
      DrawTitle(edt1.Text,true);
      for i := 1 to 10 do
        DrawText('This is some text '+IntToStr(i));
      NewLine;
      DrawBMP(Bmp,maxInt,50,'Some bitmap in the report');
      AddBookMark('bookmarkname');
      WordWrapLeftCols := true;
      AddColumns([10,20,50]);
      AddColumnHeaders(['#','Two','Three'],true,true);
      for i := 1 to 100 do
        DrawTextAcrossCols([IntToStr(i),'Column '+IntToStr(i),'Some text here. '+s]);
      NewLine;
      DrawBMP(Bmp,maxInt,50,'Some bitmap in the report (twice)');
      DrawTitle('This is your text',false,0,'','bookmarkname');
      DrawText(mmo1.Text);
      EndDoc;
      // set optional PDF export options
      // ExportPDFForceJPEGCompression := 80;
      // ExportPDFEmbeddedTTF := true;
      // ExportPDFUseUniscribe := true;
      // ExportPDFA1 := true;
      // show a preview form, and allow basic actions via the right click menu
      // ShowPreviewForm;
      // export as PDF
      ExportPDF('test.pdf',false);
    finally
      Free;
    end;

Есть и другие решения, но это Open Source, и вы можетедаже рисовать в отчете все, что вы хотите (используя «стандартное» свойство TCanvas - вы можете даже напрямую использовать любой графический компонент, используя метод PaintTo), а не только специальные методы, генерируемые отчетами, такие как DrawTitle () или DrawText ().* РЕДАКТИРОВАТЬ:

Если ваш вопрос был о создании файлов PDF с формами, эта библиотека не будет работать.

Вы должны использовать некоторые библиотеки с закрытым исходным кодом, такие как VeryPdf оr QuickPdf . Google твой друг .

...