OBJETO PRINTER PARA PDF
Citação::
Vou buscar nos meus arquivos aqui e depois te digo, mas já aviso que meus projetos são feitos em C#, tá?
Vlw
Aqui vai algumas dicas de como montar um arquivo PDF usando o ItextSharp
Dim NomeArq as string = [Ô]C:\Lixo\Meupdf.pdf[Ô]
Dim Doc As iTextSharp.text.Document = New iTextSharp.text.Document(iTextSharp.text.PageSize.A4) [ô]Cria um documento ItextSharp tamanho A4
Dim PD As iTextSharp.text.pdf.PdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(Doc, New FileStream([txt-color=#0000f0]NomeArq[/txt-color], FileMode.Create))
[txt-color=#007100][ô]NomeArq = Nome do arquivo a ser criado com o caminho completo
[/txt-color]Doc.Open()
Dim Ln As iTextSharp.text.pdf.PdfContentByte = PD.DirectContentUnder
Dim FontDat As BaseFont = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1252, False) [txt-color=#0000f0][ô]Criar as fontes desejadas
[/txt-color]
TextPdf(Pd, [Ô]CNPJ: 05.050.172/0001-04[Ô], 65, 15, FontDat, 12, 1)
TextPdf(Pd, [Ô]Uma nova linha[Ô], 15, Py + 15, FontDat, 10, 2)
TextPdf(Pd, [Ô]Impressão de linha[Ô] & vbcrlf & [Ô]Com quebra de linha[Ô], 140, Py + 15, FontDat, 12, 1)
Doc.Close()
Doc.Dispose
[txt-color=#0000f0][ô]Se desejar visualizar o documento, pode-se usar a linha a seguir
[/txt-color] System.Diagnostics.Process.Start(NomeArq)
Notas:
Como a coordenada 0,0 do PDF é o canto inferior esquerdo da página, fica meio a contramão o posicionamento
Pra facilitar fiz uma rotina que muda as coordenadas 0,0 para o canto superior direito
Private Sub TextPdf(ByVal Pd As PdfWriter, ByVal Texto As String, ByVal X As Single, ByVal Y As Single, ByVal Fonte As BaseFont, ByVal SizeFont As Single, Optional Align As Integer = iTextSharp.text.Element.ALIGN_LEFT)
Dim Ln As PdfContentByte = Pd.DirectContent
Ln.BeginText()
Ln.SetFontAndSize(Fonte, SizeFont)
Ln.ShowTextAligned(Align, Texto, X * 72 / 25.4, (Pd.PageSize.Height- Y) * 72 / 25.4, 0)
Ln.EndText()
End Sub
[ô]Tenho várias outras rotinas para linhas, figuras, imagens, código de barras, blocos de texto com alinhamentos e justificados, marcas d[ô]agua, etc....
se quiser encurtar caminho te passo uma cópia....
São bem legais e estão bem testadas, ou então desenvolva as tuas próprias rotinas
Dim NomeArq as string = [Ô]C:\Lixo\Meupdf.pdf[Ô]
Dim Doc As iTextSharp.text.Document = New iTextSharp.text.Document(iTextSharp.text.PageSize.A4) [ô]Cria um documento ItextSharp tamanho A4
Dim PD As iTextSharp.text.pdf.PdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(Doc, New FileStream([txt-color=#0000f0]NomeArq[/txt-color], FileMode.Create))
[txt-color=#007100][ô]NomeArq = Nome do arquivo a ser criado com o caminho completo
[/txt-color]Doc.Open()
Dim Ln As iTextSharp.text.pdf.PdfContentByte = PD.DirectContentUnder
Dim FontDat As BaseFont = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1252, False) [txt-color=#0000f0][ô]Criar as fontes desejadas
[/txt-color]
TextPdf(Pd, [Ô]CNPJ: 05.050.172/0001-04[Ô], 65, 15, FontDat, 12, 1)
TextPdf(Pd, [Ô]Uma nova linha[Ô], 15, Py + 15, FontDat, 10, 2)
TextPdf(Pd, [Ô]Impressão de linha[Ô] & vbcrlf & [Ô]Com quebra de linha[Ô], 140, Py + 15, FontDat, 12, 1)
Doc.Close()
Doc.Dispose
[txt-color=#0000f0][ô]Se desejar visualizar o documento, pode-se usar a linha a seguir
[/txt-color] System.Diagnostics.Process.Start(NomeArq)
Notas:
Como a coordenada 0,0 do PDF é o canto inferior esquerdo da página, fica meio a contramão o posicionamento
Pra facilitar fiz uma rotina que muda as coordenadas 0,0 para o canto superior direito
Private Sub TextPdf(ByVal Pd As PdfWriter, ByVal Texto As String, ByVal X As Single, ByVal Y As Single, ByVal Fonte As BaseFont, ByVal SizeFont As Single, Optional Align As Integer = iTextSharp.text.Element.ALIGN_LEFT)
Dim Ln As PdfContentByte = Pd.DirectContent
Ln.BeginText()
Ln.SetFontAndSize(Fonte, SizeFont)
Ln.ShowTextAligned(Align, Texto, X * 72 / 25.4, (Pd.PageSize.Height- Y) * 72 / 25.4, 0)
Ln.EndText()
End Sub
[ô]Tenho várias outras rotinas para linhas, figuras, imagens, código de barras, blocos de texto com alinhamentos e justificados, marcas d[ô]agua, etc....
se quiser encurtar caminho te passo uma cópia....
São bem legais e estão bem testadas, ou então desenvolva as tuas próprias rotinas
Faça seu login para responder