dic
18(Italiano → English) View originalTranslators:
ItextSharp, ottima libreria per la creazione di pdf.
Peccato che ultimamente mi abbia fatto perdere parecchia pazienza per disegnare il più classico elemento che possa trovare in un documento di testo: una linea orizzontale.ns3umcdwsdmc2mtf9r8bgdp1p9lsojxu
La cosa assurda è che nemmeno in rete si trova materiale utile, la documentazione si riferisce ad un oggetto obsoleto non più utilizzabile in c# (l’oggetto Graphic), e il thread della mailing list a cui si viene rimandati dalla documentazione ufficiale, in cui lo sviluppatore padre del progetto interviene, non è molto chiaro ma soprattutto rende tutto molto più complicato del necessario, tirando in ballo celle di tabella che non semplificano il tutto.ngg4fwdajkbfmfhrt6rke4kisikhwqph
Dopo parecchie ricerche e tentativi ho trovato un modo semplice ed efficace per disegnarla, il tutto si fa in poche righe di codice, basta sapere come farlo:
o5vrfdigrf3i4p2b0jrb7nb2uqomdcnb
//crea un document
iTextSharp.text.Document _document = new iTextSharp.text.Document();
//crea un writer
PdfWriter _writer = PdfWriter.GetInstance(_document, new FileStream("C:\file.pdf", FileMode.Create));
//disegna una linea orizzontale
PdfContentByte _cb = _writer.DirectContent;
_cb.MoveTo(_document.Left, (_document.Top - _document.Bottom) - _writer.CurrentDocumentSize);
_cb.LineTo(_document.Right, (_document.Top - _document.Bottom) - _writer.CurrentDocumentSize);
_cb.Stroke();
(original) Visualizza English translation
ItextSharp, ottima libreria per la creazione di pdf.
Peccato che ultimamente mi abbia fatto perdere parecchia pazienza per disegnare il più classico elemento che possa trovare in un documento di testo: una linea orizzontale.
La cosa assurda è che nemmeno in rete si trova materiale utile, la documentazione si riferisce ad un oggetto obsoleto non più utilizzabile in c# (l’oggetto Graphic), e il thread della mailing list a cui si viene rimandati dalla documentazione ufficiale, in cui lo sviluppatore padre del progetto interviene, non è molto chiaro ma soprattutto rende tutto molto più complicato del necessario, tirando in ballo celle di tabella che non semplificano il tutto.
Dopo parecchie ricerche e tentativi ho trovato un modo semplice ed efficace per disegnarla, il tutto si fa in poche righe di codice, basta sapere come farlo:
//crea un document
iTextSharp.text.Document _document = new iTextSharp.text.Document();
//crea un writer
PdfWriter _writer = PdfWriter.GetInstance(_document, new FileStream("C:\file.pdf", FileMode.Create));
//disegna una linea orizzontale
PdfContentByte _cb = _writer.DirectContent;
_cb.MoveTo(_document.Left, (_document.Top - _document.Bottom) - _writer.CurrentDocumentSize);
_cb.LineTo(_document.Right, (_document.Top - _document.Bottom) - _writer.CurrentDocumentSize);
_cb.Stroke();


Ciao,
bell’esempio.
Quindi disegnare in un PDF non ha niente a che fare col disegnare in GDI! …sigh!!!
Mi permetto di postare la versione in VB:
‘crea un document
Dim document As New iTextSharp.text.Document()
‘crea un writer
Dim writer As iTextSharp.text.pdf.PdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(document, New IO.FileStream(“C:\Prova.pdf”, IO.FileMode.Create))
‘disegna una linea orizzontale
document.Open()
Dim cb As iTextSharp.text.pdf.PdfContentByte = writer.DirectContentUnder
cb.MoveTo(document.Left, (document.Top – document.Bottom) – writer.CurrentDocumentSize)
cb.LineTo(document.Right, (document.Top – document.Bottom) – writer.CurrentDocumentSize)
cb.Stroke()
document.Close()
Process.Start(“C:\Prova.pdf”)
Andrea