Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Merging PDF's
Message
From
02/04/2010 15:36:04
Timothy Bryan
Sharpline Consultants
Conroe, Texas, United States
 
 
To
01/04/2010 20:18:37
General information
Forum:
ASP.NET
Category:
Other
Title:
Environment versions
Environment:
C# 3.0
Miscellaneous
Thread ID:
01458458
Message ID:
01458548
Views:
41
Hi Charles,

Programatically filling in pdf forms is something I was about to start searching for so you saved me some effort also. I appreciate it. How easy did you figure out how to do that with this tool? What does it take to have a pdf form that accepts being filled out?
Tim

>>This client wants to merge pdf files.
>>There database-related logic in the algorithm that determines what files from what folders should be combined.
>>I found one open source tool that claims to be able to do it, but there is no documentation and before I dive into it, I'm wondering if anyone has any better ideas?
>>Thanks
>
>If the tool is iTextsharper it definitely can do it. Google around and you'll find code on how to do it. If you get stuck let me know and I can show you my vb code. I am using iTextsharper to programmtically fill out 40 or so PDF forms and merge them into one big PDF. Not difficult at all to hook up.
>
>(found it faster than I thought I would. this is the routine I am using to join the PDFs. i pass in the name of the masterPDF I want to create and an array of the names of the PDFs to be merged )_
>
>
>
>
>Imports System
>Imports System.IO
>Imports iTextSharp.text
>Imports iTextSharp.text.pdf
>Imports System.Collections.Generic
>
>Public NotInheritable Class PDFJoiner
>
>    Public Shared Sub JoinPDFs(ByVal Masterpdf As String, ByVal sourcefiles As String())
>
>        Dim f As Integer = 0
>
>        ' we create a reader for a certain document
>        ' owner password as second param requires a byte array 
>
>        Dim pword As Byte()
>
>        pword = Base.Utility.StrToByteArray("jellopudding")
>
>        Dim reader As New PdfReader(sourcefiles(0), pword)
>
>        ' we retrieve the total number of pages
>        Dim n As Integer = reader.NumberOfPages
>        '      Console.WriteLine("There are " & n & " pages in the original file.")
>        ' step 1: creation of a document-object
>        Dim document As New Document(reader.GetPageSizeWithRotation(1))
>
>        ' step 2: we create a writer that listens to the document
>
>        Dim writer As PdfWriter = PdfWriter.GetInstance(document, New FileStream(Masterpdf, FileMode.Create))
>        ' step 3: we open the document
>        document.Open()
>
>        Dim cb As PdfContentByte = writer.DirectContent
>        Dim page As PdfImportedPage
>        Dim rotation As Integer
>        ' step 4: we add content
>
>        f = 1
>        While f < sourcefiles.Length
>
>            Dim i As Integer = 0
>            While i < n
>                i += 1
>                document.SetPageSize(reader.GetPageSizeWithRotation(i))
>
>                document.NewPage()
>
>                page = writer.GetImportedPage(reader, i)
>                rotation = reader.GetPageRotation(i)
>                If rotation = 90 Or rotation = 270 Then
>                    cb.AddTemplate(page, 0, -1, 1, 0, 0, reader.GetPageSizeWithRotation(i).Height)
>                Else
>                    cb.AddTemplate(page, 1, 0, 0, 1, 0, 0)
>                End If
>
>            End While
>
>            System.Diagnostics.Debug.WriteLine("Processed document " & f & " - " & sourcefiles(f))
>
>            f += 1
>
>            If f < sourcefiles.Length Then
>
>                reader = New PdfReader(sourcefiles(f), pword)
>
>                ' we retrieve the total number of pages
>                n = reader.NumberOfPages
>
>                System.Diagnostics.Debug.WriteLine("There are " & n & " pages in the original file.")
>            End If
>
>       End While
>
>        document.Close()
>
>    End Sub
>
>
>End Class
>
>
Timothy Bryan
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform