Right... but do you have any component suit for that in peto?
Beiträge von mikerabat
-
-
Hi!
Is there any possibility to sign a pdf with a certificate using any of the pdf components (like in the Acrobat Reader)?
There is a growing need in our business to create pdf's that are signed....
kind regards
Mike
-
Nur wie hoch muss das objekt dann sein???
und warum könnte folgender code nicht funktionieren?:
Die Seiten sind immer 0 und der Loop endet vorzeitig, obwohl schlußendlich das erzeugte Bild mit höhe SizeY auf Seite 3 landet.// ###########################################
// #### Iteratively change the size until it fits on the page
gra := TBitmap.Create;
gra.SetSize(1, 1);
wpimg:=TWPOImage.CreateImage(fRichText.Memo.RTFData, memGra);
with fRichText.Header do
SizeY:=round( MulDiv(PageHeight - TopMargin - BottomMargin,// - MarginHeader - MarginFooter,
1,100) / cScaleFactor);
textObj := fRichText.TextObjects.Insert(wpimg);
wpimg.WidthTW :=Round(SizeX*cScaleFactor);
wpimg.HeightTW:=Round(SizeY*cScaleFactor);
textObj.Height := MulDiv(wpImg.HeightTW, 2, 3);
fRichText.ReformatAll(True, True);
curPage := fRichText.CPPage; //textObj.ParentRTFPage;
scale := 100;
repeat
dec(scale, 2);
with fRichText.Header do
SizeY:=round( MulDiv(PageHeight - TopMargin - BottomMargin,// - MarginHeader - MarginFooter,
scale,100) / cScaleFactor);
wpimg.HeightTW:=Round(SizeY*cScaleFactor);
textObj.Height := MulDiv(wpImg.HeightTW, 2, 3);
fRichText.ReformatAll(True, True);
//isOnSamePage := textObj.ParentRTFPage = curPage;
isOnSamePage := fRichText.CPPage = curPage;
until (isOnSamePage) or (scale < 70);
textObj.Free;
gra.Free;
-
Genau. Es darf nicht skaliert werden - würde es skaliert würden feine Gitterlinien, die auch mm entsprechen würden skaliert werden und
deren Abstand stimmt dann nicht mehr. Deshalb die Frage - wie kann ich genau herausfinden, wieviel Platz noch auf der Seite frei ist um genau
ein Bild einpassen zu können.
Geht das mit einer neueren Version? Es wäre natürlich schön wenn es mit einer alten auch noch geht...
-
Skalieren/Verzerren darf ich das Bild auf keinen Fall - das müsste doch gehen sonst könnte doch niemand irgendwelche Formatierungen machen?!?!.
Wie könnte ich das bei einer Tabelle machen. Könnte ich da eine 1x1 Tabelle (mit 100% Resthöhe/Breite) mit unsichtbarem Rahmen einfügen und die maximale Höhe/Breite ermitteln?
-
Ich würde gerne ein Bild einfügen, dass im aktuellen Paragraphen 100% der Resthöhe einnimmt. Wie kann ich
in WPTools6 diese Höhe berechnen.
Prinzipiell benutze ich:
with fRichText.Header do
SizeY:=round( MulDiv(PageHeight - TopMargin - BottomMargin,// - MarginHeader - MarginFooter,
StrToInt(FirstWordSeparator('%', s, False)),100) / cScaleFactor);
für die maximale Höhe - allerdings könnte ein wenig Text darüber stehen (oder ein Header/Footer).
Versucht habe ich RichText.ActivePar.HeightTotal bzw. RichText.CPYPos benutzt... ohne echten Erfolg..
-
Ok - wenn ich dann keine Sektionen brauche, wie kann ich dann ein Bild einfügen, das dann 100% (oder annähernd) der Seite hat und auch
keine Header/Footer angezeigt werden?
-
Hi!
Ich versuch jetzt schon seit geraumer Zeit PDF (via wpviewpdf) in ein WPRichText Dokument einzufügen.
Dabei habe ich ein fix fertiges Dokument, das ein Tag besitz (ala --PDF|PDFFilename.pdf---) und an diese
Stelle sollte es eingefügt werden mit. Ich dachte ich könnte das einfach mit Sections hinbekommen aber so ganz
funktioniert es nicht (also Section einfügen, pdf Bilder einfügen, "alte" Section wieder restaurieren, damit das Dokument
einfach weiter geht)
Zunächst habe ich versucht ein lokales Wprichtext objekt zu generieren, die Bilder des pdf's als PNG zu exportieren
und ins richtext objekt per Imagetextobjekt wieder einzufügen. Hat nicht so gut geklappt :( (keine Bilder wurden übernommen)
Zur Zeit habe ich folgenden Ansatz (davor wurde per Finder Objekt der Tag gefunden und gelöscht)
Code
Alles anzeigenorigSectionID := fRichText.ActiveParagraph.SectionID; if fRichText.IsEmpty then fRichText.CheckHasBody else fRichText.InputString(#12); fRichText.FormatOptions := [wpDisableSpeedReformat]; props := fRichText.HeaderFooter.AddSectionProps; props.Assign(fRichText.Header); dataBlock := fRichText.HeaderFooter.Append( wpHeader, wpraOnAllPages ); dataBlock.Clear(True); // clear header dataBlock := fRichText.HeaderFooter.Append( wpFooter, wpraOnAllPages ); dataBlock.Clear(True); props.Select := [wpsec_PageSize, wpsec_Margins, wpsec_SelectHeaderFooter]; fRichText.ActiveParagraph.SectionID := props.SectionID; include(fRichText.ActiveParagraph.prop, paprNewSection); // same page size but without margins props.SetPageWH(fRichText.Header.PageWidth, fRichText.Header.PageHeight); fRichtext.ActiveParagraph.ASet(WPAT_CharFontSize, 100); // font size = 1 fRichText.ReformatAll; defParheight := fRichtext.ActiveParagraph.HeightTotal; // ########################################## // #### Load pdf - convert to png images and insert them in the report with WPViewPDF do try LoadFromFile( pdfFileName ); for i := 0 to PageCount - 1 do begin // width and height properties seems to be in 72dpi origWidthTW := MulDiv( PageWidth[i], 1440, 72 ); origHeightTW := MulDiv( PageHeight[i], 1440, 72 ); pngFileName := FindUnusedFileName( GetTempDir + idealPng ); try // 0 resolution is then default WritePNG(pngFileName ,i , 0, wp24FullColor ); // ################################################ // #### Insert graphic img := TPngImage.Create; img.LoadFromFile(pngFileName); if (img.Width > 0) and (img.Height > 0) then ratio := img.Width/img.Height else begin img.Free; continue; end; memGra := TMemImage.Create; memGra.InitGraphic(img); img.Free; origWidthTW := Min(origWidthTW, fRichText.ActivePar.TextAreaWidth); with props do origHeightTW := Min(origHeightTW, PageHeight - TopMargin - BottomMargin - 2*defParheight); // use the original width/height or stretch the image to the maximum on the page wpimg := TWPOImage.CreateImage(fRichText.Memo.RTFData, memGra); wpimg.WidthTW := origWidthTW; wpimg.HeightTW := origHeightTW; // adjust width height for proportional scaling if Round(wpimg.WidthTW) > Round(wpimg.HeightTW*ratio) then wpImg.WidthTW := Round(wpimg.HeightTW*ratio) else if Round( wpImg.HeightTW ) > Round(wpimg.WidthTW/ratio) then wpImg.HeightTW := Round(wpimg.WidthTW/ratio); fRichText.TextObjects.Insert(wpimg); memGra.Free; finally DeleteFile(pngFileName); end; end; fRichText.ReformatAll; fRichText.Finder.Next('--PDFEND---'); aPos := fRichText.Finder.Position; fRichText.SetSelPosLen(aPos, Length('--PDFEND---')); fRichText.SelText := ''; par := fRichText.ActiveParagraph; // restore old format props := fRichText.HeaderFooter.AddSectionProps; props.Select := [wpsec_PageSize, wpsec_Margins]; props.Assign(fRichText.Header); // todo: this should reference to header footer 1 dataBlock := fRichText.HeaderFooter.Append( wpHeader, wpraOnAllPages ); dataBlock.UsedForSectionID := origSectionID; // props.SectionID; dataBlock.RtfText.Assign(fRichText.HeaderFooter[0].RtfText); dataBlock := fRichText.HeaderFooter.Append( wpFooter, wpraOnAllPages ); dataBlock.UsedForSectionID := origSectionID; //props.SectionID; dataBlock.RtfText.Assign(fRichText.HeaderFooter[1].RtfText); par.SectionID := props.SectionID; include(fRichText.ActiveParagraph.prop, paprNewSection); fRichText.ReformatAll(True); finally Free; end;
Ich benutze wptools 6.
Der Code funktioniert etwas (hat aber noch Macken :( ) . Problematisch ist aber eher, dass viele leere Seiten dadurch erzeugt werden und auch manchmal der Header nicht übernommen wird.
Irgendwo hab ich also noch einen Denkfehler :( . Löschen der leeren Seiten funktioniert auch nicht besonders, da ich glaube, dass die Sektionen manchmal wieder gelöscht
werden. -
Hi!
I recently tried to test the pdf/a conformance and recognized that the
wpcidunicode fontmode flag seems to create incompatible pdf/a files.
At least the pdf/a conformance tools I used said that.
Is there any hint on that? Removing it though would create conform files
but result in quite large files.