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

フレームを表示

PDFDocumentPageクラス






メンバ 
PDF文書におけるページに関する情報を格納します。
オブジェクトモデル
構文
[SerializableAttribute()]
public class PDFDocumentPage 
'Declaration
 
<SerializableAttribute()>
Public Class PDFDocumentPage 
'Usage
 
Dim instance As PDFDocumentPage
public class PDFDocumentPage
[SerializableAttribute()]
public ref class PDFDocumentPage 
解説

PDFDocumentPageクラスが、PDFDocument.Pagesコレクションの型として使われます。

新しいPDFDocumentオブジェクトがPDFDocument(string fileName)またはPDFDocument(string fileName、stringパスワード)コンストラクタで作成されるとき、PDFDocument.Pagesコレクションは自動的に作成されます。PDFDocumentオブジェクトがPDFファイルのリードオンリーのビューであるため、このコレクションはリードオンリーで、修正されることができません。PDF文書内のページに対応するコレクション内の各項目。

ページコレクションの各項目は、PDF文書におけるページと一致します。インデックス0の項目はページ1のプロパティで、インデックス1の項目はページ2のプロパティである、等です。PDFDocumentPage構造体に、ページ数を指定するPageNumberプロパティが格納され、この情報は便宜性のためのみであっても、PDFDocumentコンストラクタは、常に正しい順序で最初のページから最後のページまでコレクションを入力します。

各PDF文書ページには、2つの長方形領域、メディアボックスおよびクロップボックスが含まれます。PDFDocumentPageはロードして、MediaBoxCropBoxプロパティで、これらの値を保存します。以下に説明する様々な幅と高さの値は、クロップボックスのものです。詳細については、「PDF座標系」を参照してください。

PDFDocumentPageクラスは、直接PDFファイルから読まれる(PDFクロップボックス)ページ読込みPDF単位の幅と高さを格納します。PDF単位は1/72のインチであるので、612×792のページサイズは8.5×11インチ(612/72 x 792/72)と一致します。各々のページ読込みPDF単位(1/72のインチ)のサイズは、と高プロパティで自動的に設定されます。各々のページ読込みインチのサイズは、固定されもして、WidthInchesHeightInchesプロパティでも設定されます。ページのサイズは、オーナー文書解像度にピクセル単位で依存します。この値はいつでもユーザーによって変更されることができるので、ページのピクセルサイズはそれに応じて変更します。現在の解像度を用いてページ読込みピクセルのサイズを取得するために、WidthPixelsHeightPixelsプロパティを使います。

ドキュメントにおけるページの合計数は、Pages.Countです。

各々のPDFDocumentPageオブジェクトは、オリジナルのPDF文書における対応するページに位置するいろいろなPDFネイティブオブジェクトで値を入力されることもできます。PDFファイルからPDFDocumentオブジェクトを最初に作成するとき、後述するすべてのコレクションはnullの値を持っています。PDFDocument.ParsePagesメソッドを用いてオブジェクトでコレクションを値を入力することができます。解析される各々のページは、コレクションをオプションパラメーターとして渡されるPDFParsePagesOptionsの値に従いファイルでオブジェクトを見つけて値を入力されて、下で説明しておきます。

ParsePagesメソッドが返ったあと、以下のプロパティは以下のように初期化されます:

PDFDocumentPageオブジェクトは、ConvertPointとピクセル/インチ座標にページ/オブジェクトから、そして、それにポイントまたはrectを変換するのに用いられることができるConvertRectヘルパーメソッドも格納します。

サンプル

このサンプルはPDF文書をロードして、すべてのそのオブジェクトを解析します。imageの上で表面でこれらのオブジェクトを描画する方法のサンプルのために、PDFDocumentPageを参照します。

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

Public Sub PDFDocumentPageExample()
  Dim pdfFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf")
  Dim txtFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "LEAD_pdf.txt")
  ' Open the document
  Using document As PDFDocument = New PDFDocument(pdfFileName)
    ' Parse everything and for all pages
    Dim options As PDFParsePagesOptions = PDFParsePagesOptions.All
    document.ParsePages(options, 1, -1)

    ' Save the results to the text file for examining
    Using writer As StreamWriter = File.CreateText(txtFileName)
       For Each page As PDFDocumentPage In document.Pages
         writer.WriteLine("Page {0}", page.PageNumber)

         Dim fonts As IList(Of PDFFont) = page.Fonts
         ' Note, no need to check if fonts is null since we passed .All
         ' This will either get the fonts or an empty list. Same for all
         ' the other objects
         writer.WriteLine("Fonts: {0}", fonts.Count)
         For Each font As PDFFont In fonts
           writer.WriteLine("  FaceName: {0}", font.FaceName)
           writer.WriteLine("  FontStyle: {0}", font.FontStyle.ToString())
           writer.WriteLine("------")
         Next font
         writer.WriteLine("---------------------")

         Dim objects As IList(Of PDFObject) = page.Objects
         writer.WriteLine("Objects: {0}", objects.Count)
         For Each obj As PDFObject In objects
           writer.WriteLine("  ObjectType: {0}", obj.ObjectType.ToString())
           writer.WriteLine("  Bounds: {0}, {1}, {2}, {3}", obj.Bounds.Left, obj.Bounds.Top, obj.Bounds.Right, obj.Bounds.Bottom)
           WriteTextProperties(writer, obj.TextProperties)
           writer.WriteLine("  Code: {0}", obj.Code)
           writer.WriteLine("------")
         Next obj
         writer.WriteLine("---------------------")

         Dim hyperlinks As IList(Of PDFHyperlink) = page.Hyperlinks
         writer.WriteLine("Hyperlinks: {0}", hyperlinks.Count)
         For Each hyperlink As PDFHyperlink In hyperlinks
           writer.WriteLine("  Hyperlink: {0}", hyperlink.Hyperlink)
           writer.WriteLine("  Bounds: {0}, {1}, {2}, {3}", hyperlink.Bounds.Left, hyperlink.Bounds.Top, hyperlink.Bounds.Right, hyperlink.Bounds.Bottom)
           WriteTextProperties(writer, hyperlink.TextProperties)
         Next hyperlink
         writer.WriteLine("---------------------")
       Next page
    End Using
  End Using
End Sub

Private Shared Sub WriteTextProperties(ByVal writer As StreamWriter, ByVal textProperties As PDFTextProperties)
  writer.WriteLine("  TextProperties.FontHeight: {0}", textProperties.FontHeight.ToString())
  writer.WriteLine("  TextProperties.FontWidth: {0}", textProperties.FontWidth.ToString())
  writer.WriteLine("  TextProperties.FontIndex: {0}", textProperties.FontIndex.ToString())
  writer.WriteLine("  TextProperties.IsEndOfWord: {0}", textProperties.IsEndOfWord.ToString())
  writer.WriteLine("  TextProperties.IsEndOfLine: {0}", textProperties.IsEndOfLine.ToString())
  writer.WriteLine("  TextProperties.Color: {0}", textProperties.Color.ToString())
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.Pdf;
using Leadtools.WinForms;

public void PDFDocumentPageExample()
{
   string pdfFileName = Path.Combine(LEAD_VARS.ImagesDir, @"Leadtools.pdf");
   string txtFileName = Path.Combine(LEAD_VARS.ImagesDir, @"LEAD_pdf.txt");
   // Open the document
   using(PDFDocument document = new PDFDocument(pdfFileName))
   {
      // Parse everything and for all pages
      PDFParsePagesOptions options = PDFParsePagesOptions.All;
      document.ParsePages(options, 1, -1);

      // Save the results to the text file for examining
      using(StreamWriter writer = File.CreateText(txtFileName))
      {
         foreach(PDFDocumentPage page in document.Pages)
         {
            writer.WriteLine("Page {0}", page.PageNumber);

            IList<PDFFont> fonts = page.Fonts;
            // Note, no need to check if fonts is null since we passed .All
            // This will either get the fonts or an empty list. Same for all
            // the other objects
            writer.WriteLine("Fonts: {0}", fonts.Count);
            foreach(PDFFont font in fonts)
            {
               writer.WriteLine("  FaceName: {0}", font.FaceName);
               writer.WriteLine("  FontStyle: {0}", font.FontStyle.ToString());
               writer.WriteLine("------");
            }
            writer.WriteLine("---------------------");

            IList<PDFObject> objects = page.Objects;
            writer.WriteLine("Objects: {0}", objects.Count);
            foreach(PDFObject obj in objects)
            {
               writer.WriteLine("  ObjectType: {0}", obj.ObjectType.ToString());
               writer.WriteLine("  Bounds: {0}, {1}, {2}, {3}", obj.Bounds.Left, obj.Bounds.Top, obj.Bounds.Right, obj.Bounds.Bottom);
               WriteTextProperties(writer, obj.TextProperties);
               writer.WriteLine("  Code: {0}", obj.Code);
               writer.WriteLine("------");
            }
            writer.WriteLine("---------------------");

            IList<PDFHyperlink> hyperlinks = page.Hyperlinks;
            writer.WriteLine("Hyperlinks: {0}", hyperlinks.Count);
            foreach(PDFHyperlink hyperlink in hyperlinks)
            {
               writer.WriteLine("  Hyperlink: {0}", hyperlink.Hyperlink);
               writer.WriteLine("  Bounds: {0}, {1}, {2}, {3}", hyperlink.Bounds.Left, hyperlink.Bounds.Top, hyperlink.Bounds.Right, hyperlink.Bounds.Bottom);
               WriteTextProperties(writer, hyperlink.TextProperties);
            }
            writer.WriteLine("---------------------");
         }
      }
   }
}

private static void WriteTextProperties(StreamWriter writer, PDFTextProperties textProperties)
{
   writer.WriteLine("  TextProperties.FontHeight: {0}", textProperties.FontHeight.ToString());
   writer.WriteLine("  TextProperties.FontWidth: {0}", textProperties.FontWidth.ToString());
   writer.WriteLine("  TextProperties.FontIndex: {0}", textProperties.FontIndex.ToString());
   writer.WriteLine("  TextProperties.IsEndOfWord: {0}", textProperties.IsEndOfWord.ToString());
   writer.WriteLine("  TextProperties.IsEndOfLine: {0}", textProperties.IsEndOfLine.ToString());
   writer.WriteLine("  TextProperties.Color: {0}", textProperties.Color.ToString());
}

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

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

参照

参照

PDFDocumentPageメンバ
Leadtools.Pdf名前空間
PDFDocumentクラス
LEADTOOLS PDFによるプログラミング
PDF座標系

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