VB Aiuto con la libreria iTextSharp

Fpgiuliano

Utente Iron
26 Febbraio 2019
1
1
0
14
Ultima modifica da un moderatore:
Buongiorno a tutti,
Sono Francesco e sono nuovo del forum, avrei bisogno di un vs aiuto in quanto ho delle conoscenze del vecchio Visual Basic (un po’ studiate a scuola e molto approfondito da solo tramite internet)
La programmazione mi ha sempre affascinato ma, a causa del lavoro non ho mai avuto tempo di studiare vb.net

Ad ogni modo, non in maniera semplice (e grazie a Google e ad utenti che hanno postato un po’ di spiegazioni) sono riuscito a scrivere un codice che permetta, tramite la libreria itextsharp, di aggiungere del testo ad un pdf “matrice” esistente creando il pdf output pdf.

Ora ho due problemi,
1) non riesco a settare il grassetto per font arial
Preciso che ho necessità di scrivere con arial in grassetto e non posso usare il font arial bold perché sono troppo diversi

Non ho capito se è la modalità di scrittura che utilizzo (pdf content byte) che non prevede la possibilità di mettere lo style bold o che


Vi posto il codice

Codice:
Public Function scrivisuPDF()
Dim stext As String = UCase(txtNome.Text)
Dim newFile As String = "C: \output.pdf"
Dim oldfile As String = "C: \matrice.pdf"

Dim reader As New PdfReader(oldfile)
Dim size As Rectangle = reader.GetPageSizeWithRotation(1)
Dim Document As New Document(size)

Dim Fs As FileStream = New FileStream(newFile, FileMode.Create, FileAccess.Write)
Dim writer As PdfWriter = PdfWriter.GetInstance(Document, Fs)
Document.Open()
Dim cb As PdfContentByte = writer.DirectContent

Dim arial As BaseFont = BaseFont.CreateFont("c: \windows\fonts\arial.ttf", BaseFont.CP1252, BaseFont.NOT_EMBEDDED)

‘Ho provato questo ma non funziona
'Dim Font As Font = New Font(arial, 11, Font.BOLD)

cb.SetFontAndSize(arial, 11)
cb.BeginText()

‘Idem anche con questo
'Dim p As New Paragraph
'p.Add(New Paragraph(testo, Font))

cb.ShowTextAligned(0, stext, 24, 730, 0)
cb.ShowTextAligned(0, "codice fiscale", 150, 702, 0)
cb.EndText()



Dim page As PdfImportedPage = writer.GetImportedPage(reader, 1)
cb.AddTemplate(page, 0, 0)

Document.Close()
Fs.Close()
writer.Close()
reader.Close()
Return 0
End Function

Ho un altro problema poi, il file matrice.pdf, è formato da 2 pagine, ma quando mi crea il file output mi restituisce solo la prima.. cosa ho sbagliato?

Grazie del vs tempo e a chi vorrà aiutarmi
Francesco