xppPdf() - Seitenränder löschen [ERLEDIGT]

Moderator: Moderatoren

Antworten
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

xppPdf() - Seitenränder löschen [ERLEDIGT]

Beitrag von Martin Altmann »

Moin,
bei meinen Positionierungen ist der Text immer nach rechts (0,4cm) und nach unten (0,2cm) verschoben. Wie kann ich diese Ränder entfernen, so dass der Text an der von mir angegebenen Stelle sitzt?

Code: Alles auswählen

oPdf := XbpPDF():New()
oPdf:NewPage( XBPPRN_FORM_A4, XBPPRN_ORIENT_PORTRAIT,,,,GRA_PU_LOMETRIC, 0, 0 )
oPdf:VipInit( cVorlage )
oPdf:Create( vordruckpfad+sonderkat+"\Test.pdf" )


if hundename
	oPdf:Font( alltrim( str( hundeschrg ) ) + "." + oFont2:familyName + iif( "f" $ hundeschrs, " Bold", "" ) + iif ( "k" $ hundeschrs, " Italic", "" ) )
	text := "XXXXXXXXX Hier wird der Hundename hingedruckt! XXXXXXXXX"
	if titlpruef
		text += ", und die Titel kommen hierhin!"
	endif
	oPdf:MText( 100 * hundeunten, 100 * hundelinks, ConvToAnsiCp( text ), ascan( aAusr, hundeschra ) - 1 )
endif
if hundebez
	oPdf:Font( alltrim( str( hundebschg ) ) + "." + oFont2:familyName + iif( "f" $ hundebschs, " Bold", "" ) + iif ( "k" $ hundebschs, " Italic", "" ) )
	oPdf:MText( 100 * hundebezun, 100 * hundebezli, ConvToAnsiCp( alltrim( hundebeztx ) ), ascan( aAusr, hundebscha ) - 1 )
endif
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von Koverhage »

Die Frage ist, ob die Vorlage schon verschoben ist.
Gruß
Klaus
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von Martin Altmann »

Klaus,
nein - ist sie nicht. Ich habe schon gedacht, dass es vielleicht an dem DEMO liegt - vielleicht kann mal einer von Euch einen Report drucken, ohne die Lizenznummer anzugeben - ist das dann auch verschoben?
Ich habe mal ein erzeugtes PDF angehangen - die Zeile mit dem Hundenamen passt, da habe ich die gemessene Abweichung mal manuell von den berechneten Koordinaten abgezogen. Aber das kann nicht die Lösung sein, höchstens ein Workaround.

Viele Grüße,
Martin
Dateianhänge
Test.pdf
(187.08 KiB) 313-mal heruntergeladen
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von Koverhage »

Martin,

was passiert wenn Du Deine Vorlage ganz normal ausdruckst und dann die von xpppdf daneben (ohne Text).
Ich hatte z.B. folgendes Problem:
Newpage augerufen und die Fonteinstellungen gesetzt. Dann die PDF eingefügt. Bis zum ersten Bold war alles in Ordnung,
danch wurde leider alles in Bold gedruckt. Deshalb kann ich mir durch vorstellen, dass die Einstellungen für linker und oberer Rand
nach dem Einfügen verloren gehen bzw. auf Standardwerte gesetzt werden.
Gruß
Klaus
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von Martin Altmann »

Klaus,
wenn ich meine Vorlage und die erzeugte Datei im Adobe Acrobat Reader öffne, sind die Abstände identisch (bis auf meine nachträglich eingefügten Text natürlich, die sind ja in der Vorlage nicht drin ;-) )

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von Koverhage »

Damit es einer probieren kann.
Kannst Du die Werte für
hundeunten
hundelinks

hundebezun
hundebezl

posten ?
Gruß
Klaus
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von Martin Altmann »

Moin,
habe eh' gerade eine ZIP an Edgar gemailt - hängt hier mal an.

Viele Grüße,
Martin
Dateianhänge
testpdf.zip
(350.08 KiB) 308-mal heruntergeladen
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von brandelh »

wie druckst du deine PDF, ohne Anpassungen oder auf Seitenränder einpassen ?
Wenn man auf Seitenränder einpassen im Acrobat Reader einstellt, verkleinert er die Werte minimal und je nach Drucker käme das mit deinen Werten hin.
Ich kann mich nicht erinnern, dass Edgar irgendwelche Druckerränder / Seitenränder verwendet. Eine PDF braucht das ja nicht.
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von Martin Altmann »

Hubert,
ich drucke gar nicht - ich schaue mir das PDF im Reader an!
Und wenn ich ausdrucke, dann sage ich: Originalgröße, nicht anpassen! Mein eingedruckter Text muss linksbündig zum Text der Vorlage sein - ist er aber nicht, er ist nach rechts und unten verschoben.
Und Edgar hat default Seitenränder - links 1 Zeichen und oben eine Zeile.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von Martin Altmann »

So - habe gerade mal genauer geprüft. Es liegt nicht nur am Seitenrand - auch die Umrechnung, die Edgar intern vornimmt, scheint fehlerhaft zu sein!
Der Abstand von unten passt - aber der von links passt bei den weiter rechts stehenden Texten auch nicht mehr - da ist er zu gering.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von Koverhage »

Warum benutzt Du überhaupt Mtext und nicht nur Text ?
Gruß
Klaus
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von Martin Altmann »

Weil ich da gleich die Ausrichtung zu der Koordinate angeben kann!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von brandelh »

ich kann deine Angaben bei meinem Programm das diese Bibliothek nutzt nicht bestätigen.
Ich habe 20 als linker Rand eingestellt und

#define MILLIMETERS 7 // laut PDF Handbuch. Bottom Up

mein Rand wird zwischen 20 und 21 mm gedruckt, das ist Messtoleranz.
Auch die Sprünge zu den Spalten sind so groß wie ich das erwarte ...

Code: Alles auswählen

//-------------------------------------------------------------------------------------------
//------------------------------------------- _HB_PDF - einige Methoden erweitern
//-------------------------------------------------------------------------------------------
CLASS _HB_PDF from XbpPDF
   EXPORTED:                         // Global sichtbar
   METHOD NumText
   METHOD RText
   METHOD ZText
ENDCLASS
//------------------------------------------------------------------------------------
Method _HB_PDF:NumText(nPosY, nPosX, nWert, cFormat)
   DEFAULT cFormat TO "@E 999,999.99"
   ::Mtext( nPosY, nPosX, transform(nWert,cFormat), 1 )
return self
//------------------------------------------------------------------------------------
Method _HB_PDF:RText(nPosY, nPosX, cWert)                // Rechtsbündig
   DEFAULT cWert TO ""
   ::Mtext( nPosY, nPosX, alltrim(cWert), 1 )
return self
//------------------------------------------------------------------------------------
Method _HB_PDF:ZText(nPosY, nPosX, cWert)                // Zentriert
   DEFAULT cWert TO ""
   ::Mtext( nPosY, nPosX, alltrim(cWert), 2 )
return self
notfalls könntest du aber eine Ableitung wie ich oben machen und auch die Werte anpassen.
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen

Beitrag von Martin Altmann »

Hubert,
Danke - Edgar meinte, bei ihm würde auch alles passen mit meinem Beispielprogramm.
Vielleicht liegt es ja doch an meinem Adobe Reader - ich habe zwar gesagt, dass er die Seite in Originalgröße ausdrucken soll (und nicht einpassen), aber vermutlich macht er das trotzdem (oder mein Drucker, obwohl ich im Treiber definiert habe, dass ich keine Seitrand haben möchte!)
Habe jetzt jedenfalls eine solche PDF zu meinem Kunden geschickt - der weiß ja, ob das passt (hatte ja die letzten Jahre immer ausgedruckt) - einige Stellen lassen mich daran zwar zweifeln, aber vielleicht hat er das damals bewusst so krumm gesetzt.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: xppPdf() - Seitenränder löschen [ERLEDIGT]

Beitrag von Martin Altmann »

OK,
alles prima. Kunde hat auf meine Bitte hin die leere PDF, die sie mir geschickt hatte, ausgedruckt und mit dem Originalformular aus der Druckerei verglichen - da sind die Ränder auch unterschiedlich, das PDF ist nach innen "gedrängt", die Aussenränder also leicht größer.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Antworten