Ciao
Per cambiare l'orientamento e il tipo di carta la riga interessata è questa
pdf = New tuastampa("Portrait", "mm", "A4")
Portrait = verticale
Landscape = orrizontale
e poi puoi cambiare il formato in A4 A3 etcc, e puoi anche crearne uno tutto tuo, basta che metti le mani nel codice di pdfwriter, esattamente quà
Case "a3"
$fwPt = 841.89
$fhPt = 1190.55
Case "a4"
$fwPt = 595.28
$fhPt = 841.89
Case "a5"
$fwPt = 420.94
$fhPt = 595.28
Case "letter"
$fwPt = 612
$fhPt = 792
Case "legal"
$fwPt = 612
$fhPt = 1008
all'inizio, circa alla riga 250
Ciao fammi sapere :2birre:
si potrebbe anche usare una semplice funzioncina, tipo questa
Public Sub cvcm(misura_in_centimetri As Float) As Float
Return (72 / 2.54) * misura_in_centimetri
End
......
Case "a3"
$fwPt = cvcm(29.7)
$fhPt = cvcm(42.0)
Case "a4"
$fwPt = cvcm(21.0)
$fhPt = cvcm(29.7)
.....
Riprendo finalmente la presente discussione per raggiungere l'obiettivo "stampa modulo c/c postale per bollo auto".
Ho raccolto l'invito ad apportare una piccola modifica in PdfWriter, inserendovi il riconoscimento automatico di documenti speciali (diversi dagli standard A4, A3, ...) attualmente gestiti. Prendendo anche spunto dai suggerimenti ricevuti nel corso della corrente discussione, anche se non è mia abitudine mettere le mani in lavori non miei, per rispetto e corretteza verso gli autori, ho preso coraggio ed ho approcciato un'idea di possibile modifica. Essa, secondo me, dovrebbe cominciare nel programma chiamante, proprio nell'istruzione di chiamata:
Attuale
pdf = New ReportX("Portrait", "mm", "A4")
Nuova:
Dim $StriForm As Striing = "SPEC.oo.ooXvv.vv)
'--------------------------------------------------------------
pdf = New ReportX("Portrait", "mm", $StriForm)
Il numero dei parametri è rimasto invariato, ma ho pensato di aggiungere un valore costituito, solamente per i formati speciali, dalla costante "SPEC.", seguita dalle dimensioni orizzontale(oo.oo) e verticale(vv.vv) del documento. Le stesse sono separate dalla lettere "X". Detta struttura verrà intercettata, interpretata e applicata da PDFWriter nel gruppo di istruzioni relative al "Page Format", fra le righe 184 - 202:
nuova:
'Page format
Select Case Lower(form)
Case "a3"
$fwPt = 841.89
$fhPt = 1190.55
Case "a4"
$fwPt = 595.28
$fhPt = 841.89
Case "a5"
$fwPt = 420.94
$fhPt = 595.28
Case "letter"
$fwPt = 612
$fhPt = 792
Case "legal"
$fwPt = 612
$fhPt = 1008
Default
If Len(form) > 5 and Len(form) <= 16
If Left(Lower(form), 5) = "spec." Then
i = InStr(Lower(form), "x")
If i <> 0 Then
ifwPt = $k * (Val(Mid(form, 6, i - 6)))
ifhPt = $k * (Val(Right(form, Len(form) - i)))
$fwPt = Str(ifwPt))
$fhPt = Str(ifhPt))
Endif
Error.Raise("Unknown page format: " & form)
Endif
Error.Raise("Unknown page format: " & form)
Else
Error.Raise("Unknown page format: " & form)
Endif
End Select
Il controllo dovrà essere ulteriormente allargato alla presenza di "mm" o "cm" in unit di "Scale factor". Non l'ho ancora approfondito, perchè non ho ancora capito come gestire l'eventuale passaggio delle dimensioni in "pt" e in "in".
Prima di proseguire, gradirei conoscere l'opinione di chi ne sa molto di più di me sull'argomento.
:ciao: