1

私は itextsharp から始めていますが、1 つを除いてすべての質問に答えることができました。

これが他の場所ですでに回答されている場合は申し訳ありません。それが役立つ場合は、ここに私のコードがあります。

//編集: 以下は私の作業コードです。ブルーノの例を使用して変更されています。

 Public Sub MergePDFFiles(FileList As System.Collections.Generic.List(Of ModifiedItemForList), pdfName As String, pageCount As Integer)

    Dim reader As PdfReader
    Dim mergedPdf As Byte() = Nothing
    Dim n As Integer
    Dim page As Integer
    Dim par As Paragraph
    Dim pageMode As Integer
    Dim pageLayout As Integer
    Dim pageZoom As PdfDestination
    Dim outlineZoom As PdfDestination
    Dim pdfAction As PdfAction
    Dim root As PdfOutline
    Dim pdfOutline As PdfOutline

    Using ms As New MemoryStream()

        Using document As New Document()

            Using copy As New PdfCopy(document, ms)
                'Dim copy As New PdfCopy(document, ms)
                document.Open()
                root = copy.RootOutline
                pageMode = copy.PageModeUseOutlines
                pageLayout = copy.PageLayoutSinglePage
                pageZoom = New PdfDestination(PdfDestination.FIT)
                copy.ViewerPreferences = pageMode
                pdfAction = pdfAction.GotoLocalPage(1, pageZoom, copy)
                copy.SetOpenAction(pdfAction)

                ' For Each FilePath As KeyValuePair(Of String, String) In FileList  ' .Count - 1
                For i As Integer = 0 To pageCount - 1
                    ' FilePath As KeyValuePair(Of String, String)
                    If File.Exists(FileList.Item(i).Value) Then
                        reader = New PdfReader(FileList.Item(i).Value)
                        ' loop over the pages in that document
                        n = reader.NumberOfPages
                        page = 0
                        par = New Paragraph(FileList.Item(i).Key)
                        Debug.Print("FileList.Item(i).Key = " & FileList.Item(i).Key)
                        outlineZoom = New PdfDestination(PdfDestination.FIT)
                        pdfOutline = New PdfOutline(root, outlineZoom, par)

                        While page < n
                            copy.AddPage(copy.GetImportedPage(reader, System.Threading.Interlocked.Increment(page)))
                        End While

                    End If

                Next

            End Using

        End Using

        mergedPdf = ms.ToArray()

    End Using

    File.WriteAllBytes(pdfName, mergedPdf)

End Sub

ご意見をお待ちしております。Corbin de Bruin

4

1 に答える 1

0

Chapterカスタム ブックマークが必要な場合は、 とSectionを使用しないでくださいPdfOutline。代わりに使用してください。これは(もちろん)私の本の第7章に記載されています。例の C# ポートが必要な場合は、第 7 章のコード例、具体的にはCreateOutlineTree.csを参照してください。ここでは、 (Fit Horizo​​ntally の場合) と Y 位置を使用する代わりに、(および余分なものはありません) で目的地を作成するだけです。パラメータ):PdfDestination.FITHPdfDestination.FIT

new PdfOutline(root, new PdfDestination(PdfDestination.FIT), title, true);
于 2013-05-14T21:22:15.170 に答える