Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   mehrseitige PowerPDF-Datein mit Kompression (https://www.delphipraxis.net/173784-mehrseitige-powerpdf-datein-mit-kompression.html)

ereetzer 15. Mär 2013 18:01

Delphi-Version: 5

mehrseitige PowerPDF-Datein mit Kompression
 
ich erzeuge mittels dieser Komponente mehrseitige PDF-Dateien.

Falls jemand anderes auch diese Komponente benutzt: wie kann man diese dazu überreden, die Dateien zu komprimieren, die Eigenschaft
CompressionMethod zeigt mir ständig nur cmNone an, sprich keine andere Auswahlmöglichkeit.
Die Dateigröße der erzeugten Dateien gefäält mir nicht so recht.

Danke
ereetzer

Bjoerk 15. Mär 2013 18:24

AW: mehrseitige PowerPDF-Datein mit Kompression
 
Delphi-Quellcode:
// {$define nozlib}

ereetzer 15. Mär 2013 18:40

AW: mehrseitige PowerPDF-Datein mit Kompression
 
Danke für die Antwort,

leider ändert das nichts. Weder an der Dateigröße noch an der Möglichkeit cmFlatDecode auszuwählen zu können etwas.

Sprich: es hat leider rein gar nicht "erkennbares" bewirkt.
Ich find 1,2mb für 2 Seiten einfach zu viel !!, zumal diese nicht sehr anspruchsvoll gestaltet sind.

Gruß
ereetzer

Bjoerk 15. Mär 2013 18:56

AW: mehrseitige PowerPDF-Datein mit Kompression
 
Das gibt’s doch nicht.

if use "FlateDecode" compression, comment out the next line (this unit and PdfDoc.pas)
{$DEFINE NOZLIB}

Bei mir geht's. Und wie du schon sagst, das macht enorm was aus.

Gruß
Thomas

ereetzer 16. Mär 2013 07:08

AW: mehrseitige PowerPDF-Datein mit Kompression
 
hab jetzt alles powerPDF deinstalliert und neu kompiliert. Jetzt kann ich FlateDecode auswählen. Nur an der Dateigröße ändert sich nichts, ob ich´s auswähle oder nicht.
Die Datei bleibt 1.18 mb gross. Hmm, das ist unschön.

Hast Du sonst noch eine Idee? Ich scanne 2 Seiten ein und speicher die als pdf. Wenn ic hdie erzeugt Datei nochmal auf einem pdf-Drucker "ausdrucke" wird Sie nochmal 25% kleiner.
Das ist aber keine Lösung auf Dauer:-)

ereetzer

Bernhard Geyer 16. Mär 2013 07:38

AW: mehrseitige PowerPDF-Datein mit Kompression
 
Um PDF's mit gescannten Bilder kleiner zu bekommen müsste die Komponente die Bitmaps(?) auf JPEG/JPEG2000 mit kleinerer DPI-Auflösung wandeln können. Ob das die Komponente kann?

Bjoerk 16. Mär 2013 08:20

AW: mehrseitige PowerPDF-Datein mit Kompression
 
Gut, wie groß das pdf ist hängt natürlich von der Seitengröße des pdfs ab. Vielleicht mal mit 96 dpi einnscannen oder mit StrechDraw arbeiten.

Ich zieh mir die Komponente auch nicht aufs Form sondern hab eine TList von gleich großen TPRPage Seiten. Wenn ich Bitmaps einbinde, dann sind deren Abmessungen exakt auf die Seitengröße des pdfs abgestimmt (immer ganze, hable oder Viertelgrößen dieser Bounds).

Die Seiten hab ich so aufgebaut:

Delphi-Quellcode:
const
  CharFixedHeight = 28;
  CharArialHeight = 24;
  CharFixedWidth = 16.8; // PRLabel.GetTextWidth (FontSize: CharFixedHeight, fnFixedWidth)
  PRPageWidth = 1680;
  PRPageHeight = 2376;
  PRLayoutPanelMarginsX = 168; // (PageWidth - 80 * FixedWidth) / 2
  PRLayoutPanelMarginsY = 50;

procedure TPdfListPage.PRPageInit(const PageNr: integer);
begin
  FPRPage.Left:= 0;
  FPRPage.Top:= 0;
  FPRPage.Width:= PRPageWidth;
  FPRPage.Height:= PRPageHeight;
  FPRPage.Name:= 'PRPage' + IntToStr(PageNr);
end;

procedure TPdfListPage.PRLayoutPanelInit(const PageNr, VX, VY: integer);
begin
  FPRLayoutPanel.Parent:= FPRPage;
  FPRLayoutPanel.Left:= PRLayoutPanelMarginsX + VX;
  FPRLayoutPanel.Top:= PRLayoutPanelMarginsY + VY;
  FPRLayoutPanel.Width:= FPRPage.Width - 2 * PRLayoutPanelMarginsX;
  FPRLayoutPanel.Height:= FPRPage.Height - 2 * PRLayoutPanelMarginsY;
  FPRLayoutPanel.Name:= 'PRLayoutPanel' + IntToStr(PageNr);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz