Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 SynPdf версии delphi  [new]
Ekael
Member

Откуда:
Сообщений: 102
Какие версии delphi поддерживает SynPdf, у меня стоит rad studio xe10.1 berlin, а при запуске программы получил такой нежданьчик, как понимаю все заканчивается восьмеркой? Если да, то что могли бы посоветовать по аналогу какому-нибудь, и чтоб можно было работать с pdf

К сообщению приложен файл. Размер - 107Kb
25 сен 16, 14:22    [19705723]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3207
Добавить в исходники дефайны под нужную делфи. Всего одну строчку скопипастить же.
25 сен 16, 14:31    [19705732]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
Ekael
Member

Откуда:
Сообщений: 102
JaDi,
Такую?
 {$elseif defined(VER300)}'Delphi XE10'
25 сен 16, 14:59    [19705774]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3207
Ekael,

да, только VER310 для делфи 10.1 берлин.

А вообще, это какой-то старый файл. Посмотрел текущую версию SynPDF на гитхабе -- там написана поддержка вплоть до сиэтла. А если посмотреть на synopse.inc, то и все последующие версии должны поддерживаться благодаря продвинутым дефайнам.
25 сен 16, 15:09    [19705793]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
Ekael
Member

Откуда:
Сообщений: 102
JaDi,
Спасибо за помощь.
25 сен 16, 15:20    [19705814]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
Ekael
Member

Откуда:
Сообщений: 102
А у меня ещё такой вопрос, может кто-то знает, когда помещаю изображение jpeg в pdf, то отображаю его на всю страницу формата а4, но когда открываю pdf, то изображение получается намного больше чем надо. вот примеры
1 изображение - исходное
2 изображение - pdf

К сообщению приложен файл. Размер - 121Kb
25 сен 16, 16:16    [19705871]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
Ekael
Member

Откуда:
Сообщений: 102


К сообщению приложен файл. Размер - 104Kb
25 сен 16, 16:16    [19705873]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3207
Обычно, приводят пример кода, чтобы понять, в чем дело.
25 сен 16, 16:31    [19705891]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 9917
JaDi
Обычно, приводят пример кода, чтобы понять, в чем дело.
Не те, нынче, телепаты пошли

Он вставил рисунок А4 альбомной ориентации в портретный лист
25 сен 16, 16:35    [19705899]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
Ekael
Member

Откуда:
Сообщений: 102
PDF.AddPage;
   PDF.DefaultPaperSize:=psA4;

   jpg.LoadFromFile(OpenDialog1.FileName);

   PDF.VCLCanvas.Draw(0,0,jpg);

   PDF.SaveToFile(extractfilepath(paramstr(0))+'test_2.pdf');
25 сен 16, 16:41    [19705907]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3207
Ekael,

Надо использовать метод StretchDraw, где можно задать область, куда надо рисовать картинку. Например:

pdf.VCLCanvas.StretchDraw(pdf.VCLCanvas.ClipRect, jpg);
25 сен 16, 16:50    [19705918]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
Ekael
Member

Откуда:
Сообщений: 102
JaDi,
Если даже картинка вертикальная, то по вашему коду она хоть и растягивается немного, но если у картинки длина меньше чем у листа a4, то она все равно не растягивает. Конечный результат, нужно чтобы бы изображение было полностью растянуто на целый лист а4
25 сен 16, 17:17    [19705970]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3207
Ekael,

Что-то типа этого:

  pdf.VCLCanvas.StretchDraw((Rect(0, 0, jpg.Width, jpg.Height), jpg);
25 сен 16, 17:28    [19705993]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3207
Кстати, режим создания pdf-документа через TPdfDocumentGDI (тот самый VCLCanvas) использует стандартную методы отрисовки от делфи. Так что все вопросы в поисковике можно адресовать именно к обычному Canvas -- там же и примеров кода полно будет.
25 сен 16, 17:33    [19706002]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
Ekael
Member

Откуда:
Сообщений: 102
JaDi,
Результат первоначальный, кстати скобка лишняя. Ну а нельзя ли как-нибудь через масштаб ее сделать. К примеру использовать scale?
25 сен 16, 17:34    [19706005]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3207
Проблема была в том, что размер канваса для отрисовки pdf свои собственные -- их надо брать из pdf.VCLCanvasSize).

Рабочий пример:
uses
  SynPdf,
  Vcl.Imaging.jpeg;

procedure TForm83.Button1Click(Sender: TObject);
var
  pdf: TPdfDocumentGDI;
  jpg: TJPEGImage;
begin
  jpg := TJPEGImage.Create;
  jpg.LoadFromFile('C:\Users\JayDi\Pictures\1474427649-7a21a6cc06ed14e4173a0e85da6401e8.jpeg');

  pdf := TPdfDocumentGDI.Create;
  pdf.DefaultPaperSize := TPDFPaperSize.psA4;
  pdf.AddPage;
  pdf.VCLCanvas.StretchDraw(Rect(0, 0, pdf.VCLCanvasSize.Width, pdf.VCLCanvasSize.Height), jpg);
  pdf.SaveToFile('d:\test\test.pdf');

  FreeAndNil(pdf);
  FreeAndNil(jpg);
end;


И результат:

Картинка с другого сайта.
25 сен 16, 17:55    [19706024]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
Ekael
Member

Откуда:
Сообщений: 102
JaDi,
Да, все получилось, но как понимаю, что synpdf использовать под андроид не получится, так как подключается только synpdf, а jpeg нет, проверял на firemonkey. А какие аналоги пойдут на андроид, не знаете?
25 сен 16, 18:07    [19706036]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3207
Ekael,

Простой HTML.
25 сен 16, 18:11    [19706043]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
Ekael
Member

Откуда:
Сообщений: 102
JaDi,
Тоесть у меня задача написать программу на андроид, чтобы она изображение конвертировала в pdf, для создания pdf можно использовать synpdf, а для вставки картинок в pdf, какой нужен модуль? Можете немного поподробнее про html
25 сен 16, 18:20    [19706054]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3207
Ekael,

а что дальше надо делать с тем "pdf"?
25 сен 16, 18:41    [19706084]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
Ekael
Member

Откуда:
Сообщений: 102
JaDi,
в приложение загружается картинка, потом она делается черно-белой, потом из нее делается pdf, а после этот pdf сохраняется на устройство.
25 сен 16, 18:43    [19706088]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3207
По андройду ничего не скажу.
25 сен 16, 18:47    [19706091]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
asviridenkov
Member

Откуда:
Сообщений: 3734
Ekael
JaDi,
Тоесть у меня задача написать программу на андроид, чтобы она изображение конвертировала в pdf, для создания pdf можно использовать synpdf, а для вставки картинок в pdf, какой нужен модуль? Можете немного поподробнее про html


Лучше использовать нативные возможности Android по созданию PDF
25 сен 16, 19:32    [19706176]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
Ekael
Member

Откуда:
Сообщений: 102
JaDi,
Вот нашел код по созданию pdf на android
var
  Document: JPdfDocument;
  PageInfo: JPdfDocument_PageInfo;
  Page: JPdfDocument_Page;
  Canvas: JCanvas;
  Paint: JPaint;
  Rect: JRectF;
  FileName: string;
  OutputStream: JFileOutputStream;
  Intent: JIntent;
begin
  // create Pdf document
  Document := TJPdfDocument.JavaClass.init;
  try
    // create page  1
    PageInfo := TJPageInfo_Builder.JavaClass.init(100, 100, 1).create;
    Page := Document.startPage(PageInfo);

    Canvas := Page.getCanvas;
    Paint := TJPaint.JavaClass.init;

    Paint.setARGB($FF, 0, 0, $FF);
    Canvas.drawText(StringToJString('Hello, world!'), 10, 50, Paint);

    Document.finishPage(Page);


Как здесь можно вставить картинку в pdf, что дописать в var, и или ещё что-то подключить надо.
26 сен 16, 16:07    [19709334]     Ответить | Цитировать Сообщить модератору
 Re: SynPdf версии delphi  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3207
Ekael,

Это не SynPDF, а какой-то другой компонент. Может кто и подскажет.
26 сен 16, 16:21    [19709423]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Delphi Ответить