Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Consiglio Pdf
venerdì 14 novembre 2008 - 09.09
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ilario
Profilo
| Senior Member
309
messaggi | Data Invio:
ven 14 nov 2008 - 09:09
ciao
per stampare uso printdocument, stavo cercando qualche libreria (Free se possibile) che mi permetteva di trasformare il document in un pdf
ho trovato alcune stampanti pdf, ma mi chiedevo se esisteva qualcosa d'altro , senza dover installare una stampante
grazie
ilario
fguida
Profilo
| Expert
524
messaggi | Data Invio:
dom 16 nov 2008 - 16:28
So che esiste un ACBpdf che ti permette di gestire questo tipo di file; puoi generarne o modificarne. Intendevi questo nella tua domanda?
Francesco
ilario
Profilo
| Senior Member
309
messaggi | Data Invio:
lun 17 nov 2008 - 11:07
ti ringrazio ora provo a vedere abcpdf
<puoi generarne o modificarne. Intendevi questo nella tua domanda?
creare un pdf da un document (printdocument)
nel frattempo ho trovato diverse classi che creano un pdf e quindi avevo pensato di traspormare il mio document (printdocument) in una immagine e inserirla nel pdf
grazie
ilario
ps nel caso volessi scriverlo io un file pdf sapete dove trovare la struttura del file pdf
fguida
Profilo
| Expert
524
messaggi | Data Invio:
mar 18 nov 2008 - 16:47
Con ABCpdf puoi creare un nuovo pdf ed inserire la tua immagine finale. Credo che faccia proprio al caso tuo
Francesco
ilario
Profilo
| Senior Member
309
messaggi | Data Invio:
mar 18 nov 2008 - 17:29
ciao
ho dato un occhiata ma è a pagamento
ho usato itextshrarp, ma appena trovo lo schema del file pdf , mi farò io una funzione , tanto dovrò inserire semplicemente un'immagine
dopo alcuni problemi del tipo che l'immagine del print document è metafile di grandi dimensioni(come pixel) l'ho trasformata in jpg e ridotta nella misura della pagina effettiva , dovro sistemare la qualità e alcune cosine, ma con questa funzione va benissimo e mi crea il file pdf in un secondo.
ovviamente nel file comparirà un'immagine, quindi non è modificabile ma nel mio caso va benissimo
appena capirò come funzionano le stampanti virtuali, cercherò di creare una classe che mi faccia la stessa cosa ma senza installarla sul computer( sempre se possibile)
Private Sub pulPdf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pulPdf.Click
SaveFileDialog1.FileName = DocumentoPrint.DocumentName
SaveFileDialog1.Filter = "File pdf|*.PDF"
SaveFileDialog1.FilterIndex = 1
SaveFileDialog1.Title = "Salva Conto come Pdf"
SaveFileDialog1.OverwritePrompt = False
If SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
Dim controller As New Printing.PreviewPrintController
controller.UseAntiAlias = False
DocumentoPrint.PrintController = controller
DocumentoPrint.Print()
Dim pages As Printing.PreviewPageInfo() = controller.GetPreviewPageInfo()
Dim IndexPag As Integer
Dim pageSizePdf As iTextSharp.text.Rectangle = New iTextSharp.text.Rectangle(DocumentoPrint.DefaultPageSettings.PaperSize.Width, DocumentoPrint.DefaultPageSettings.PaperSize.Height)
Dim DocumentPdf As Document = New iTextSharp.text.Document(pageSizePdf) 'pdf
'controlla se landscape = true ruota
If DocumentoPrint.DefaultPageSettings.Landscape = True Then DocumentPdf.PageSize.Rotate()
Try
'nuovo file pdf e inserisci i dati del file autore ecc...
PdfWriter.GetInstance(DocumentPdf, New FileStream(SaveFileDialog1.FileName, FileMode.Create))
DocumentPdf.AddTitle(DocumentoPrint.DocumentName)
'DocumentPdf.AddSubject(DocumentoPrint.DocumentName)
'DocumentPdf.AddCreator("My ")
DocumentPdf.AddAuthor("autore")
DocumentPdf.Open()
For IndexPag = 0 To pages.Length - 1
'inserisci immagine nel pdf
Dim pdfimage As iTextSharp.text.Image
pdfimage = iTextSharp.text.Image.GetInstance(RicavaImmagineByte(pages(IndexPag).Image, DocumentoPrint.DefaultPageSettings.PaperSize.Height, DocumentoPrint.DefaultPageSettings.PaperSize.Width, CmPx.Pixel, 300, DocumentoPrint.DefaultPageSettings.Landscape, System.Drawing.Imaging.ImageFormat.Jpeg))
pdfimage.SetAbsolutePosition(0, 0)
DocumentPdf.Add(pdfimage)
If IndexPag < pages.Length - 1 Then
DocumentPdf.NewPage()
End If
Next IndexPag
Catch de As DocumentException
ShowMessage(de.Message, "Erore", MessageBoxButtons.OK, frmMessaggioBox.mIcon.mStop)
End Try
If DocumentPdf.IsOpen = True Then
DocumentPdf.Close()
End If
End If
End Sub
Private Function RicavaImmagineByte(ByVal Immagine As Drawing.Image, ByVal Altezza As Integer, ByVal larghezza As Integer, ByVal MmoPixel As CmPx, ByVal Dpi As Integer, ByVal landscape As Boolean, ByVal FormatoImmagine As System.Drawing.Imaging.ImageFormat) As Byte()
If landscape = True Then
Dim AltezzaLarghezza As Integer = 0
AltezzaLarghezza = Altezza
Altezza = larghezza
larghezza = AltezzaLarghezza
End If
If MmoPixel = CmPx.Cm Then
Altezza = Altezza / 2.54 * Dpi
larghezza = larghezza / 2.54 * Dpi
End If
Dim ImmagineStream As MemoryStream = New MemoryStream
Dim nuova_immagine As New Bitmap(larghezza, Altezza)
Dim temp As Graphics = Graphics.FromImage(nuova_immagine)
temp.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
temp.DrawImage(Immagine, New Drawing.Rectangle(0, 0, larghezza, Altezza), New Drawing.Rectangle(0, 0, Immagine.Width, Immagine.Height), GraphicsUnit.Pixel)
nuova_immagine.Save(ImmagineStream, FormatoImmagine)
ImmagineStream.Position = 0
Dim bufferimmagine(ImmagineStream.Length) As Byte
ImmagineStream.Read(bufferimmagine, 0, bufferimmagine.Length)
RicavaImmagineByte = bufferimmagine
'riliasciare gli oggetti caricati in memoria
temp.Dispose()
ImmagineStream.Dispose()
nuova_immagine.Dispose()
End Function
grazie mille
ilario
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !