LEADTOOLS PDF(Leadtools.Pdfアセンブリ)

フレームを表示

ParseDocumentStructureメソッド






オプションを解析している文書構造。
目次と、このPDFDocumentに関連づけられるPDFファイルのページ間の内部リンクやジャンプを解析します。
構文
public void ParseDocumentStructure( 
   PDFParseDocumentStructureOptions options
)
'Declaration
 
Public Sub ParseDocumentStructure( _
   ByVal options As PDFParseDocumentStructureOptions _
) 
'Usage
 
Dim instance As PDFDocument
Dim options As PDFParseDocumentStructureOptions
 
instance.ParseDocumentStructure(options)
public void parseDocumentStructure(int pdfParseDocumentStructureOptions)
public:
void ParseDocumentStructure( 
   PDFParseDocumentStructureOptions options
) 

パラメーター

オプション
オプションを解析している文書構造。
解説

PDF文書の文書構造を解析するために、ParseDocumentStructureを使います。文書構造は、InternalLinksプロパティで保存されるドキュメントで見つけられるページ(またはジャンプ)の間でブックマークプロパティと内部のリンクで保存されるPDFブックマークオブジェクトのリストによって表される目次(TOC)です。

ディスク上でPDFファイル(ブックマーク)から新しいPDFDocumentオブジェクトを作成する、そして、InternalLinksプロパティが自動的に解析されないとき、値はnullであるでしょう。ブックマークまたは内部のリンクを読むために、ParseDocumentStructureを使わなければなりません。このメソッドが返るとき、ブックマークプロパティはドキュメント(または、ドキュメントが任意のブックマークを格納しないならば空のリスト)で見つけられるブックマーク項目ごとにPDFBookmarkオブジェクトのリストで値を入力されます。同様に、InternalLinksは内部のリンクごとにPDFInternalLinkオブジェクトのリストで値を入力されるか、ドキュメント(または項目が存在するほどのいいえの空のリスト)で見つけられるページの間でとびます。

オプションにより、どの項目を解析するかを制御します。解析するのは、ブックマークのみ、内部リンクのみ、またはすべてを選択できます。

ブックマークをPDFファイルへ書き込むために、PDFFile.WriteBookmarksメソッドを使います。

サンプル

このサンプルは、PDFファイルの文書構造を読みます

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Controls
Imports Leadtools.Pdf
Imports Leadtools.Svg
Imports Leadtools.WinForms

<TestMethod> _
Public Sub PDFDocumentParseDocumentStructureExample()
  Dim pdfFileName1 As String = Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf")
  Dim pdfFileName2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Bookmarks.pdf")
  ' Create a version of the source file with a few bookmarks
  Dim file As PDFFile = New PDFFile(pdfFileName1)
  ' Load the pages
  file.Load()
  Dim bookmarks As List(Of PDFBookmark) = New List(Of PDFBookmark)()

  ' We will bookmarks for each page, cascading levels:
  ' Goto page 1
  '    Goto page 2
  '       Goto page 3
  '          Goto page 4
  Dim level As Integer = 0
  Dim i As Integer = 0
  Do While i < file.Pages.Count
    Dim page As PDFFilePage = file.Pages(i)

    Dim bookmark As PDFBookmark = New PDFBookmark()
    bookmark.Title = "Goto page " & page.PageNumber.ToString()
    bookmark.BookmarkStyle = PDFBookmarkStyle.Plain
    bookmark.Level = level
    bookmark.TargetPageNumber = page.PageNumber
    bookmark.TargetPageFitType = PDFPageFitType.Default
    bookmark.TargetPosition = New PDFPoint(0, page.Height)
    bookmark.TargetZoomPercent = 0
    bookmarks.Add(bookmark)

    level += 1
    If level > 8 Then
       ' Reset levels
       level = 0
    End If
     i += 1
  Loop

  file.WriteBookmarks(bookmarks, pdfFileName2)

  ' Create a document for the output file
  Using document As PDFDocument = New PDFDocument(pdfFileName2)
    ' Now read the bookmarks and internal links in the document
    document.ParseDocumentStructure(PDFParseDocumentStructureOptions.InternalLinks Or PDFParseDocumentStructureOptions.Bookmarks)

    Console.WriteLine("{0} bookmarks found:", document.Bookmarks.Count)
    For Each bookmark As PDFBookmark In document.Bookmarks
       Console.WriteLine(" Title: {0}, Level: {1}, Target page: {2}", bookmark.Title, bookmark.Level, bookmark.TargetPageNumber)
    Next bookmark

    Console.WriteLine("{0} Internal links found:", document.InternalLinks.Count)
    For Each internalLink As PDFInternalLink In document.InternalLinks
       Console.WriteLine(" Source bounds: {0}, Target page: {1}", internalLink.SourceBounds, internalLink.TargetPageNumber)
    Next internalLink
  End Using
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Controls;
using Leadtools.Pdf;
using Leadtools.Svg;
using Leadtools.WinForms;

[TestMethod]
public void PDFDocumentParseDocumentStructureExample()
{
   string pdfFileName1 = Path.Combine(LEAD_VARS.ImagesDir, @"Leadtools.pdf");
   string pdfFileName2 = Path.Combine(LEAD_VARS.ImagesDir, @"Bookmarks.pdf");
   // Create a version of the source file with a few bookmarks
   PDFFile file = new PDFFile(pdfFileName1);
   // Load the pages
   file.Load();
   List<PDFBookmark> bookmarks = new List<PDFBookmark>();

   // We will bookmarks for each page, cascading levels:
   // Goto page 1
   //    Goto page 2
   //       Goto page 3
   //          Goto page 4
   int level = 0;
   for(int i = 0; i < file.Pages.Count; i++)
   {
      PDFFilePage page = file.Pages[i];

      PDFBookmark bookmark = new PDFBookmark();
      bookmark.Title = "Goto page " + page.PageNumber.ToString();
      bookmark.BookmarkStyle = PDFBookmarkStyle.Plain;
      bookmark.Level = level;
      bookmark.TargetPageNumber = page.PageNumber;
      bookmark.TargetPageFitType = PDFPageFitType.Default;
      bookmark.TargetPosition = new PDFPoint(0, page.Height);
      bookmark.TargetZoomPercent = 0;
      bookmarks.Add(bookmark);

      level++;
      if(level > 8)
      {
         // Reset levels
         level = 0;
      }
   }

   file.WriteBookmarks(bookmarks, pdfFileName2);

   // Create a document for the output file
   using(PDFDocument document = new PDFDocument(pdfFileName2))
   {
      // Now read the bookmarks and internal links in the document
      document.ParseDocumentStructure(PDFParseDocumentStructureOptions.InternalLinks | PDFParseDocumentStructureOptions.Bookmarks);

      Console.WriteLine("{0} bookmarks found:", document.Bookmarks.Count);
      foreach(PDFBookmark bookmark in document.Bookmarks)
      {
         Console.WriteLine(" Title: {0}, Level: {1}, Target page: {2}", bookmark.Title, bookmark.Level, bookmark.TargetPageNumber);
      }

      Console.WriteLine("{0} Internal links found:", document.InternalLinks.Count);
      foreach(PDFInternalLink internalLink in document.InternalLinks)
      {
         Console.WriteLine(" Source bounds: {0}, Target page: {1}", internalLink.SourceBounds, internalLink.TargetPageNumber);
      }
   }
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
必要条件

ターゲットプラットホーム

参照

参照

PDFDocumentクラス
PDFDocumentメンバ

   Leadtools.Pdfは、PDF Pro、Pro Suite、ドキュメントまたはメディカルがキーを認可して、ロック解除することを義務づけます。詳細は、以下を参照してください。LEADTOOLSツールキット機能