PDF Formularer i Letter format - TIFF ok i A4

Her kan du rapportere de fejl, som du finder ved brug af Saldi.

Redaktører: Agerskov, Peter Rude, Sarah Aagaard

Besvar
Simon
Indlæg: 6
Tilmeldt: ons okt 17, 2012 7:57 pm
Geografisk sted: Skibby

PDF Formularer i Letter format - TIFF ok i A4

Indlæg af Simon »

Da jeg ville flytte en tekst til toppen af siden og dermed angav 283mm fra bunden forsvandt teksten ud af siden på fakturaen i PDF format. Ved at vise egenskaber for PDF dokumentet kan jeg se at det leveres i Letter format (215,9 x 279,4mm) og ikke som forventet i A4 (210 x 297mm)

Men vælger jeg at få fakturaen i TIFF format, er det helt korrekt i A4 format, og jeg kan se min tekst i toppen.

Der ligger et tidligere indlæg her på forumet der skriver lidt om emnet - dog med A4 bredformat som emne: viewtopic.php?t=485

Jeg er ikke ekspert på Ghostscript, men det ser ikke ud til at være uoverskueligt at tilrette :)

Jeg er startet på gratisversionen og prøver at få det til at løse opgaven.

Venlig hilsen
Simon
Tony
Indlæg: 26
Tilmeldt: tors apr 26, 2012 1:47 pm

Re: PDF Formularer i Letter format - TIFF ok i A4

Indlæg af Tony »

Pheww, den tog lige lidt tid at løse....
Og der var desværre ikke alverden hjælp i den tråd du henviser til. Men lad mig lige forklare hvordan udskrifter genereres, så bliver det lettere at forstå for alle (inkl. den kære Agerskov :-) )

En udskrift genereres som PostScript, direkte som "rå" data. (en fil der ofte i koden refereres til som ps_fil).

Denne fil kan der så ske 2 ting med, enten laves en PDF med ps2pdf programmet - dette program ændrer ikke på papir indstilling!

Eller man kan lave en TIFF med programmet gs, som bl.a. tager en parameter omkring papirstørrelse. Det var den måde "semark" fandt en løsning på hans problem omkring landscape/bredformat.

ps2pdf kalder faktisk også gs, så en løsning omkring papirvalg kan klares den vej - A4 er standard (en af de få), så den foreslåede løsning kan anvendes med

Kode: Vælg alt

-sPAPERSIZE=a4
Den anden løsning relaterer slet ikke til Ghostscript - men til den måde ps filen bliver lavet på. Heldigvis genbruges en ps header, og her kan man så bare indsætte papirstørrelsen :-)
Anyway: find filen includes/faktinit.ps

Og tilføj f.eks.:

Kode: Vælg alt

<< /PageSize [595 842] >> setpagedevice
Så skulle siden gerne have rette størrelse. Og hvis nogen vil udskrive en PDF, og ikke har sat "tilpas til papiret" i deres PDF viewer, så ser det stadig rigtigt ud '8)

(Disclaimer: jeg har intet styr på PostScript!)

(Om det vil så også være den generiske/smukke løsning på udfordringen omkring bredformat, for nuværende sættes størrelsen slet ikke, kan diskuteres. Ved den ene løsning holdes ps filen generisk, ved den anden løses både TIFF og PDF på "den rigtige" måde)..

I praksis ved den implementering der er valgt i Saldi, så gør det INGEN forskel på hvordan udskriften kommer til at se ud - bare man vælger én af løsningerne. Og med den måde ps filen laves på, så er det ikke muligt at skabe sig fleksibilitet ved at vælge den ene frem for den anden. Dit layout ser ud på én helt specifik måde, så det skal fintunes EFTER du har sat papirstørrelsen.

Jeg vil dog lige gøre opmærksom på, at vælges løsningen hvor størrelsen sættes med gs, så skal det gøres ALLE steder ps2pdf kaldes, også hvis du skal maile osv... Ændrer man på papirstørrelsen på ps filen, så bliver ALT i A4... Værd at overveje..

-Tony

Simon skrev:Da jeg ville flytte en tekst til toppen af siden og dermed angav 283mm fra bunden forsvandt teksten ud af siden på fakturaen i PDF format. Ved at vise egenskaber for PDF dokumentet kan jeg se at det leveres i Letter format (215,9 x 279,4mm) og ikke som forventet i A4 (210 x 297mm)

Men vælger jeg at få fakturaen i TIFF format, er det helt korrekt i A4 format, og jeg kan se min tekst i toppen.

Der ligger et tidligere indlæg her på forumet der skriver lidt om emnet - dog med A4 bredformat som emne: viewtopic.php?t=485

Jeg er ikke ekspert på Ghostscript, men det ser ikke ud til at være uoverskueligt at tilrette :)

Jeg er startet på gratisversionen og prøver at få det til at løse opgaven.

Venlig hilsen
Simon
Tony
Indlæg: 26
Tilmeldt: tors apr 26, 2012 1:47 pm

Re: PDF Formularer i Letter format - TIFF ok i A4

Indlæg af Tony »

Fik lige læst lidt mere på lektien. Der kan faktisk laves en meget simpelt ændring i koden, som vil gøre det muligt for alle at vælge papirstørrelsen under indstillinger. Jeg har jo ikke adgang til andet end min egen kode (og skal kun bruge A4), så til udviklerne kommer lige en kogebogsopskrift:

gs tager faktisk (udover definerede papersizes) også argumenterne

Kode: Vælg alt

-dDEVICEWIDTHPOINTS=
og

Kode: Vælg alt

-dDEVICEHEIGHTPOINTS=
Som er defineret som punkter på en side i opløsning 72dpi..

Dermed kan i under indstillinger lave et punkt, hvor brugeren kan definere papirstørrelse i millimeter, og gemme en streng under "grupper" art='PV', box2='/usr/bin/ps2pdf -dDEVICEWIDTHPOINTS=595 -dDEVICEHEIGHTPOINTS=842'

(det var for A4)

I skal du lige huske at det så ikke tager hånd om TIFF, så måske skal der lige laves en parameter mere i grupper, måske art='TV' (for TIFF Valg), så gs bliver kaldt af de rigtige parametre, men det kræver så at koden bliver vedligeholdt til at kigge efter, om der ligger en setting på TV...

Det er under alle omstændigheder lige til højrebenet at lave de her par ændringer og folde ind i koden, hvis behovet er der... Lige nu er det i hvert fald et lidt underligt valg, at TIFF er indstillet til A4, mens PDF ikke er sat - og derfor bliver i "letter"...

-Tony
Tony skrev: ps2pdf kalder faktisk også gs, så en løsning omkring papirvalg kan klares den vej - A4 er standard (en af de få), så den foreslåede løsning kan anvendes med

Kode: Vælg alt

-sPAPERSIZE=a4
(Om det vil så også være den generiske/smukke løsning på udfordringen..)
Brugeravatar
ht
Indlæg: 62
Tilmeldt: ons nov 23, 2011 10:33 pm

Indlæg af ht »

Jeg har det lidt svært med at brug gs og externe programmer til at lave .pdf filer i saldi, specielt fordi jeg køre på en openBSD server som er "chroot" 'et
og kan ikke få gs til at spille pt. Jeg har kigget lidt på om man kunne bruge en fuld php løsning f.eks. fpdf men mangler tid pt. Men måske kunne det lægges i "todo" listen ??
Besvar