Vai al contenuto

Stampa PDF - DebWriter

I file coinvolti sono 4: 1. Un file di modello PDF: contiene la base da cui prelevare le pagine con le quali generare il nuovo documento. Puo' essere un qualsiasi file pdf purche' contenente un solo documento (per ora). 2. Un file di modello .txt: il file contiene i tag con le informazioni di posizionamento, font, e nome tag con cui generare il file .txt di dati 3. Un file .txt che conterra' i dati di stampa 4. Un file .pdf generato dalla base di modello con impressi i dati di stampa

La struttura del file di modello (vers. 1.0 04/04/2017)

E' costituito da righe di testo separate da "|". Le righe che cominciano per "#" sono considerate COMMENTI quindi da saltare. Le righe che cominciano per "$DebWriterDirective=" contengono DIRETTIVE speciali per DebWriter che ne influenzano il comportamento globale. Le righe che hanno 13 colonne vengono interpretate come righe contenenti particolari COMANDI. Le altre righe aventi tra le 8 e le 9 colonne sono considerati come CAMPI STANDARD.

Formato

#$DebWriterDirective=Directive
#model-page|occurrence|left|top|width|height|font size|text|
#model-page|occurrence|left|top|width|height|font size|tag|text|
#model-page|occurrence|left|top|width|height|font size|text|command|option|type|LineColor|Fillcolor
# se occurrence= 0 -> skip page
# se modello-pdf-page = -1 allora copia tutte le pagine della struttura originale del modello

Esempi:

#una direttiva
$DebWriterDirective=CopyAllPages
#un comando
-1|001|20|820|350|70|1,5||DrawBox|0||0,0,255|0,0,0
-1|001|30|860|300|100|09|COPIA CONFORME ALL'ORIGINALE|DrawText|0||0,0,255|0,0,0
#un campo standard con TAG e TESTO
1|1|335|780|300|100|13|<sostituto-codicefiscale-espanso>|testo
#un campo standard con solo TESTO
1|1|115|710|300|100|9|Oggi e' una bella giornata

Direttive

$DebWriterDirective=CopyAllPages: indica a DebWriter di copiare tutte le pagine del modello nel file risultante, in questo modo: - Se nelle righe successive e' implementata una struttura documento indicando solo certe pagine sul PDF, questa verra' ignorata e servira' solo a scrivere i dati sulle pagine indicate. - La presenza di un occurrence > 1 invece generera' un errore sull'applicativo perche' per ora non e' stata gestita.

Campi standard

Campo Descrizione
modello-pdf-page Pagina del file modello .pdf. Il valore -1 indichera' che vale per tutte le pagine
occurrence Occorrenza della pagina. Una pagina con occorrenza 0 verra' saltata, una pagina con occorrenza > 1 sara' duplicata
left Posizione orizzontale partendo dall'origine della pagina (punto in basso a sinistra della pagina)
top Posizione verticale partendo dall'origine della pagina (punto in basso a sinistra della pagina)
width Larghezza del box di testo (deve essere adeguata a contenere il testo scritto)
height Altezza del box di testo (deve essere adeguata a contenere il testo scritto)
font size Dimensione del font
tag Indica il campo a cui corrisponde il testo: serve al programma COBOL per sapere che testo inserire
testo Il testo che verra' stampato

Comandi implementati

Per tutti i comandi (dove citati): - left: posizione orizzontale di origine - top: posizione verticale di origine - LineColor: colore in formato RGB (nnn,nnn,nnn) usato per disegnare la linea - FillColor: colore in formato RGB (nnn,nnn,nnn) usato per riempire la forma disegnata

DrawBox

Disegna un box che parte dalla posizione left,top ed e' di larghezza width, altezza height. - text: viene ignorato - font size: spessore della linea (valori decimali in formato nn,nn) - option: - 0 = box vuoto, solo riquadro con linea di colore LineColor - 1 = box riempito con il FillColor - 2 = box riquadrato con linea di colore LineColor e riempito con il FillColor

DrawCircle

Disegna un cerchio che ha centro nella posizione left,top ed e' di raggio width. - text: viene ignorato - font size: spessore della linea (valori decimali in formato nn,nn) - option: - 0 = cerchio vuoto, solo riquadro con linea di colore LineColor - 1 = cerchio riempito con il FillColor - 2 = cerchio riquadrato con linea di colore LineColor e riempito con il FillColor

DrawLine

Disegna una linea che parte dalla posizione left,top ed arriva alla posizione width,height. - text: viene ignorato - font size: spessore della linea (valori decimali in formato nn,nn)

DrawBarcode

Disegna un barcode che parte dalla posizione left,top ed e' di larghezza width ed altezza height. LineColor e' il colore utilizzato per disegnare il barcode.

  • text: e' il codice da stampare nel barcode. Nel caso di UPC la stringa deve essere di 13 caratteri con uno 0 in testa. Il barcode puo' essere ruotato aggiungendo a fine stringa i seguenti codici:
    • /RC = Ruota di 90 gradi in senso orario
    • /RA = Ruota di 90 gradi in senso antiorario
    • /RU = Ruota di 180 gradi
  • font size: usato per impostare il size del font (probabilmente ignorato dalla libreria)
  • option: varia a seconda del type. Per tutti: se si vuole applicare una riduzione del 10% alla larghezza delle barre, incrementare il valore della option di 10.
  • type indica il tipo di barcode:
    • 1 = Code 39 (o Code 3 of 9)
      • option 0 = stampa standard
    • 2 = EAN-13 o UPC
      • option 0 = stampa solo il barcode
      • option 1 = stampa estese le barre di delimitazione del codice (extended bar guards)
      • option 2 = Draw the human-readable numbers
      • option 3 = Draw the human-readable numbers, with right spacer
      • option 4 = Draw as UPC (leading zero is not shown)
    • 3 = CODE128
      • option 0 = stampa standard
    • 4 = PostNet
      • option 0 = stampa standard
    • 5 = Interleaved 2 of 5
      • option 0 = Do not add a checksum, no bearer bars
      • option 1 = Add a checksum character, no bearer bars
      • option 2 = Do not add a checksum, draw bearer bars
      • option 3 = Add a checksum character, draw bearer bars

DrawText

Scrive una casella di testo in posizione left,top con larghezza width ed altezza height, con colore LineColor e allineamento determinato da option. - text: il testo da stampare - font size: size del font - LineColor: colore in formato RGB per scrivere il testo - option: - 0 = Center vertical alignment - 1 = Top vertical alignment - 2 = Bottom vertical alignment - 3 = Center vertical alignment, no wrapping - 4 = Top vertical alignment, no wrapping - 5 = Bottom vertical alignment, no wrapping

DrawRotatedText

Scrive una casella di testo ruotata in posizione left,top con larghezza width ed altezza height, con colore LineColor. - text: il testo da stampare - font size: size del font - type: angolo di rotazione misurato in senso anti-orario dalla posizione orizzontale (0-360) - LineColor: colore in formato RGB per scrivere il testo - option: - 0 = Center vertical alignment - 1 = Top vertical alignment - 2 = Bottom vertical alignment - 3 = Center vertical alignment, no wrapping - 4 = Top vertical alignment, no wrapping - 5 = Bottom vertical alignment, no wrapping

Modalita' operativa

Occorre leggere il file di modello .txt e da esso generare un file di output .txt che verra' dato in pasto al programma esterno, contenente le righe da stampare. Le pagine stampate saranno solo quelle referenziate (ed eventualmente duplicate) nel file .txt di output, nell'ordine in cui verranno trovate sul file.


DebWriter - Installazione e funzionamento

Installazione

Il programma e' un applicativo client .NET. Richiede quindi che il framework .NET (almeno in versione 2.0) sia installato sul pc. Si consiglia di installarlo in una cartella c:\ecoge\DebWriter in modo tale da non avere problemi con eventuali restrizioni di diritti presenti sulla cartella c:\programmi (x86).

L'installer ufficiale e' presente in P:\cud2015\DebWriter**, dove si troveranno: - SetupDebWriter.msi: l'installer dell'applicazione - setup.exe**: l'installer del .NET nel caso non sia presente

Una volta installato lanciando SetupDebWriter.msi nella cartella saranno presenti le due .dll (componenti fondamentali del programma), il programma DebWriter.exe ed il suo file di configurazione DebWriter.xml.

Funzionamento

Il programma ha due modalita' di funzionamento:

Con interfaccia

Lo si ottiene lanciando DebWriter con il doppio click o da riga di comando senza opzioni aggiuntive.

  • Tramite il bottone "File PDF Modello..." si seleziona il file .pdf che verra' usato come base per sovraimprimerci il testo contenuto nel file di dati
  • Tramite il bottone "Scrivi da File di Dati..." si seleziona il file di dati .txt contenente le caratteristiche (pagina, posizione, grandezza carattere) del testo che si vuole sovraimprimere al modello.

Se si seleziona un file valido, al ritorno dalla finestra di dialogo il programma effettuera' l'elaborazione generando nella stessa cartella del file PDF Modello un file avente lo stesso nome + "_1" che conterra' le pagine ed il testo indicate nel file di dati.

In questa modalita' il programma ritorna sempre l'intero = 1

Senza interfaccia

Lo si ottiene solo lanciando DebWriter da riga di comando con opzioni aggiuntive: in questa modalita' il programma avra' bisogno di un "file di informazioni" che conterra' i parametri essenziali per l'elaborazione.

Le opzioni a riga di comando sono 2: - DebWriter INFLOCALE: il programma cerchera' nella stessa cartella dell'eseguibile un file di informazioni che si chiami "inf_debwriter.txt" - DebWriter nome_fullpath_file_informazioni: il programma cerchera' di usare il nome fullpath passato come file di informazioni

Il file di informazioni

E' un file di testo che deve contenere questi campi: - pdf-model=nome_fullpath_del_file_PDF_modello = file PDF modello usato come base di generazione - data-file=nome_fullpath_del_file_di_dati = file di dati da cui attingere le pagine ed il testo da scrivere - output-file=nome_fullpath_del_file_di_PDF_di_output = nome del file .pdf che verra' generato

Parametri opzionali: - print-to=nome_stampante = nome di una stampante referenziata sul client - print-copies=numero_di_copie = numero di copie da stampare - delete-model=S/N = indica se al termine dell'elaborazione il programma cancellera' il file indicato nel pdf-model (default: "N") - on-success-rename-data-file=S/N = indica se al termine di un'elaborazione corretta il programma rinominera' il data-file come "last_datafile" (lasciando inalterata l'estensione) (default: "S")

La ridenominazione del data-file puo' essere utile ad un programma esterno per determinare se DebWriter ha eseguito con successo o meno l'operazione.

Codici di ritorno (modalita' senza interfaccia)

Codice Significato
-2 File di informazioni non esistente o illeggibile
-3 File PDF Modello (pdf-model) non esistente
-4 File di dati (data-file) non esistente
-5 Impossibile accedere o creare il path indicato per il file di output
-6 Esiste un file di output gia' presente e non puo' essere cancellato
-7 Stampante non esistente sul sistema
0 Elaborazione PDF fallita
1 Elaborazione eseguita con successo

NOTE: Si ricordi che se il modello contiene 5 pagine nel file generato saranno presenti SOLO le pagine referenziate nel file di dati.


Stampa PDF-DebWriter versioni precedenti

Rev. 0

I file coinvolti sono 4: 1. Un file di modello pdf: contiene la base da cui prelevare le pagine con le quali generare il nuovo documento. Puo' essere un qualsiasi file pdf purche' contenente un solo documento (per ora). 2. Un file di modello .txt: il file contiene i tag con le informazioni di posizionamento, font, e nome tag con cui generare il file .txt di dati 3. Un file .txt che conterra' i dati di stampa 4. Un file .pdf generato dalla base di modello con impressi i dati di stampa

La struttura del file di modello: E' costituito da righe di testo separate da "|". Le righe che cominciano per "#" sono considerate commenti quindi da saltare.

#modello-pdf-page|occurrence|left|top|width|height|font size|tag|text
# se occurrence= 0 -> skip page

Esempio:

1|1|335|780|300|100|13|<sostituto-codicefiscale-espanso>|testo
1|1|115|710|300|100|9|<sostituto-codicefiscale>|testo
Campo Descrizione
modello-pdf-page Pagina del file modello .pdf
occurrence Occorrenza della pagina. Pagina con occorrenza 0 = saltata, con occorrenza > 1 = duplicata
left Posizione orizzontale dall'origine della pagina (basso a sinistra)
top Posizione verticale dall'origine della pagina (basso a sinistra)
width Larghezza del box di testo
height Altezza del box di testo
font size Dimensione del font
tag Indica il campo a cui corrisponde il testo: serve al programma COBOL per sapere che testo inserire
testo Il testo che verra' stampato

Modalita' operativa: Occorre leggere il file di modello .txt e da esso generare un file di output .txt che verra' dato in pasto al programma esterno, contenente le righe da stampare. Le pagine stampate saranno solo quelle referenziate (ed eventualmente duplicate) nel file .txt di output, nell'ordine in cui verranno trovate sul file.


Estratto da documentazione interna ClickUp