チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
PDF ドキュメントのページサイズ、向き、および回転角度を確認することは、品質管理プロセスの一環として必要になる場合があります。たとえば、文書を公開または配布する前に、すべてのページが正しく表示されているかどうかを確認する必要があるかもしれません。本記事では、C# で Spire.PDF for .NET を使い、PDF ページのサイズ、向き、回転角度を取得する方法を紹介します。
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
Spire.PDF for .NET は、PDF ページの幅と高さをポイント単位で取得するために、PdfPageBase.Size.Width および PdfPageBase.Size.Height プロパティを提供しています。デフォルトの単位を他の単位に変換したい場合は、PdfUnitConvertor クラスを使用できます。以下に詳細な手順を示します。
using System.Text;
using Spire.Pdf;
using Spire.Pdf.Graphics;
namespace GetPDFPageSize
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentオブジェクトを作成
PdfDocument pdf = new PdfDocument();
// ディスクからPDFファイルを読み込む
pdf.LoadFromFile("Sample.pdf");
// 最初のページを取得
PdfPageBase page = pdf.Pages[0];
// ページの幅と高さをポイントで取得
float pointWidth = page.Size.Width;
float pointHeight = page.Size.Height;
// PdfUnitConvertorを作成して単位を変換
PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
// ポイントをピクセルに変換
float pixelWidth = unitCvtr.ConvertUnits(pointWidth, PdfGraphicsUnit.Point, PdfGraphicsUnit.Pixel);
float pixelHeight = unitCvtr.ConvertUnits(pointHeight, PdfGraphicsUnit.Point, PdfGraphicsUnit.Pixel);
// ポイントをインチに変換
float inchWidth = unitCvtr.ConvertUnits(pointWidth, PdfGraphicsUnit.Point, PdfGraphicsUnit.Inch);
float inchHeight = unitCvtr.ConvertUnits(pointHeight, PdfGraphicsUnit.Point, PdfGraphicsUnit.Inch);
// ポイントをセンチメートルに変換
float centimeterWidth = unitCvtr.ConvertUnits(pointWidth, PdfGraphicsUnit.Point, PdfGraphicsUnit.Centimeter);
float centimeterHeight = unitCvtr.ConvertUnits(pointHeight, PdfGraphicsUnit.Point, PdfGraphicsUnit.Centimeter);
// StringBuilderインスタンスを作成
StringBuilder content = new StringBuilder();
// ページサイズ情報をStringBuilderインスタンスに追加
content.AppendLine("このページのサイズ(ポイント)は (幅: " + pointWidth + "pt, 高さ: " + pointHeight + "pt) です。");
content.AppendLine("このページのサイズ(ピクセル)は (幅: " + pixelWidth + "pixel, 高さ: " + pixelHeight + "pixel) です。");
content.AppendLine("このページのサイズ(インチ)は (幅: " + inchWidth + "inch, 高さ: " + inchHeight + "inch) です。");
content.AppendLine("このページのサイズ(センチメートル)は (幅: " + centimeterWidth + "cm, 高さ: " + centimeterHeight + "cm) です。");
// テキストファイルに保存
File.WriteAllText("GetPageSize.txt", content.ToString());
}
}
}
PDF ページの向きを検出するには、ページの幅と高さを比較します。ページの幅が高さより大きい場合、そのページは横向き(ランドスケープ)であり、それ以外の場合は縦向き(ポートレート)です。以下に詳細な手順を示します。
using Spire.Pdf;
namespace GetPDFPageOrientation
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentオブジェクトを作成
PdfDocument pdf = new PdfDocument();
// ディスクからPDFファイルを読み込む
pdf.LoadFromFile("Sample.pdf");
// 最初のページを取得
PdfPageBase page = pdf.Pages[0];
// ページの幅と高さを取得
float width = page.Size.Width;
float height = page.Size.Height;
// ページの幅と高さを比較
if (width > height)
{
Console.WriteLine("\r\n\r\nページの向きは横向きです。");
}
else
{
Console.WriteLine("\r\n\r\nページの向きは縦向きです。");
}
}
}
}
PDF ページの回転角度は、PdfPageBase.Rotation プロパティを通じて取得できます。以下に詳細な手順を示します。
using Spire.Pdf;
namespace GetPDFPageRotationAngle
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentオブジェクトを作成
PdfDocument pdf = new PdfDocument();
// ディスクからPDFファイルを読み込む
pdf.LoadFromFile("Sample.pdf");
// 最初のページを取得
PdfPageBase page = pdf.Pages[1];
// 現在のページの回転角度を取得
PdfPageRotateAngle rotationAngle = page.Rotation;
string rotation = rotationAngle.ToString();
// ページの回転角度情報を出力
Console.WriteLine("\r\n\r\n現在のページの回転角度は: " + rotation);
}
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
PDF ファイルのページ数を数えることは、ドキュメントの長さを把握したり、内容を整理したり、印刷要件を評価したりするために重要です。PDF ビューアでページ数を確認するだけでなく、プログラムによってこの作業を自動化することも可能です。本記事では、C# で Spire.PDF for .NET を使い、PDF ファイルのページ数を取得する方法を紹介します。
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
Spire.PDF for .NET は、PDF ファイルを開かずに素早くページ数を数えるために、PdfDocument.Pages.Count プロパティを提供しています。以下に詳細な手順を示します。
using Spire.Pdf;
namespace GetNumberOfPages
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentオブジェクトを作成
PdfDocument pdf = new PdfDocument();
// サンプルPDFファイルを読み込む
pdf.LoadFromFile("Sample.pdf");
// PDFのページ数を数える
int PageNumber = pdf.Pages.Count;
Console.WriteLine("\r\n\r\nこのPDFファイルには{0}ページあります。", PageNumber);
// PDFを閉じる
pdf.Close();
}
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
PDF の余白とは、コンテンツとページ端の間の空白領域です。多くの場合、余白は中程度か狭く設定し、コンパクトな体裁を作ります。しかし、会社のロゴやその他の関連情報を余白に配置したい場合は、余白をもう少し広くする必要があります。この記事では、C# で Spire.PDF for .NET を使って既存の PDF ドキュメントの余白を増やしたり減らしたりする方法を説明します。
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
PDF ドキュメントの余白を拡大する方法は、ページサイズを大きくした新しい PDF を作成し、その大きなページの適切な位置にソースページを描画することです。以下は、Spire.PDF for .NET を使って PDF ドキュメントの余白を大きくする手順です。
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace IncreaseMargins
{
class Program
{
static void Main(string[] args)
{
//オリジナルのPDFドキュメントをロードする
PdfDocument originalPdf = new PdfDocument("サンプル.pdf");
//最初のページを取得する
PdfPageBase firstPage = originalPdf.Pages[0];
//新しいPdfDocumentオブジェクトを作成する
PdfDocument newPdf = new PdfDocument();
//マージンの増加値を設定する
PdfMargins margins = newPdf.PageSettings.Margins;
margins.Top = 40;
margins.Bottom=40;
margins.Left=40;
margins.Right= 40;
//新しいページサイズを計算する
SizeF sizeF = new SizeF(firstPage.Size.Width + margins.Left + margins.Right, firstPage.Size.Height + margins.Top + margins.Bottom);
//オリジナルドキュメントのページをループ処理する
for (int i = 0; i < originalPdf.Pages.Count; i++)
{
//特定のページを元にテンプレートを作成する
PdfTemplate pdfTemplate = originalPdf.Pages[i].CreateTemplate();
//新しいPDFにページを追加する
PdfPageBase page = newPdf.Pages.Add(sizeF);
//テンプレートをページ上に描画する
pdfTemplate.Draw(page, 0, 0);
}
//新しいドキュメントを保存する
newPdf.SaveToFile("output/マージンの拡大.pdf", FileFormat.PDF);
}
}
}
PDF の余白を減らす方法は、ページサイズを小さくした新しい PDF を作成し、指定された座標で小さなページ上にソースページを描画することです。以下は、Spire.PDF for .NET を使用して PDF ドキュメントの余白を縮小する手順です。
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace DecreaseMargins
{
class Program
{
static void Main(string[] args)
{
//オリジナルのPDFドキュメントをロードする
PdfDocument originalPdf = new PdfDocument("サンプル.pdf");
//最初のページを取得する
PdfPageBase firstPage = originalPdf.Pages[0];
//新しいPdfDocumentオブジェクトを作成する
PdfDocument newPdf = new PdfDocument();
//減少値を設定する
float left = -12;
float right = -12;
float top = -12;
float bottom = -12;
//新しいページサイズを計算する
SizeF sizeF = new SizeF(firstPage.Size.Width + left + right, firstPage.Size.Height + top + bottom);
//オリジナルドキュメントのページをループ処理する
for (int i = 0; i < originalPdf.Pages.Count; i++)
{
//特定のページを元にテンプレートを作成する
PdfTemplate pdfTemplate = originalPdf.Pages[i].CreateTemplate();
//新しいPDFにページを追加する
PdfPageBase page = newPdf.Pages.Add(sizeF, new PdfMargins(0));
//テンプレートをページ上に描画する
pdfTemplate.Draw(page, left, top);
}
//新しいドキュメントを保存する
newPdf.SaveToFile("output/マージンの縮小.pdf", FileFormat.PDF);
}
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
PDF 文書において、背景とはページのコンテンツの背後にある全体的な視覚的な外観を指します。背景は単純な均一な色であることもありますし、好みの画像であることもあります。PDF に背景を追加することで、ドキュメントに視覚的な魅力を加えることができ、読みやすさも向上するでしょう。この記事では、Spire.PDF for .NET を使用して PDF の背景色と背景画像を設定する方法を紹介します。
まず、Spire.PDF for .NET パッケージに含まれているDLLファイルを.NETプロジェクトの参照として追加する必要があります。DLLファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
Spire.PDF for .NET が提供する PdfPageBase.BackgroundColor プロパティを使用すると、PDF の背景として単色を設定できます。詳細な手順は次のとおりです。
using Spire.Pdf;
using System.Drawing;
namespace PDFBackgroundColor
{
class Program
{
static void Main(string[] args)
{
//PdfDocument インスタンスを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルをロードする
pdf.LoadFromFile("input.pdf");
//PDFのページをループする
foreach (PdfPageBase page in pdf.Pages)
{
//ページの背景色を設定する
page.BackgroundColor = Color.Yellow;
//背景の透明度を設定する
page.BackgroudOpacity = 0.1f;
}
//PDFファイルを保存する
pdf.SaveToFile("BackgroundColor.pdf");
pdf.Close();
}
}
}
Imports Spire.PDF
Imports System.Drawing
Namespace PDFBackgroundColor
Class Program
Private Shared Sub Main(ByVal args() As String)
'PdfDocument インスタンスを作成する
Dim pdf As PdfDocument = New PdfDocument
'PDFファイルをロードする
pdf.LoadFromFile("input.pdf")
'PDFのページをループする
For Each page As PdfPageBase In pdf.Pages
'ページの背景色を設定する
page.BackgroundColor = Color.Yellow
'背景の透明度を設定する
page.BackgroudOpacity = 0.1!
Next
'PDFファイルを保存する
pdf.SaveToFile("BackgroundColor.pdf")
pdf.Close()
End Sub
End Class
End Namespace
文書のテーマに合わせて背景として画像を追加する場合は、PdfPageBase.BackgroundImage プロパティを使用できます。詳細な手順は次のとおりです。
using Spire.Pdf;
using System.Drawing;
namespace PDFBackgroundImage
{
class Program
{
static void Main(string[] args)
{
//PdfDocument インスタンスを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルをロードする
pdf.LoadFromFile("input.pdf");
//画像をロードする
Image background = Image.FromFile("background.png");
//PDFのページをループする
foreach (PdfPageBase page in pdf.Pages)
{
//ロードされた画像をページの背景画像に設定する
page.BackgroundImage = background;
//背景の透明度を設定する
page.BackgroudOpacity = 0.2f;
}
// PDFファイルを保存する
pdf.SaveToFile("BackgroundImage.pdf");
pdf.Close();
}
}
}
Imports Spire.PDF
Imports System.Drawing
Namespace PDFBackgroundImage
Class Program
Private Shared Sub Main(ByVal args() As String)
'PdfDocument インスタンスを作成する
Dim pdf As PdfDocument = New PdfDocument
'PDFファイルをロードする
pdf.LoadFromFile("input.pdf")
'画像をロードする
Dim background As Image = Image.FromFile("background.png")
'PDFのページをループする
For Each page As PdfPageBase In pdf.Pages
'ロードされた画像をページの背景画像に設定する
page.BackgroundImage = background
'背景の透明度を設定する
page.BackgroudOpacity = 0.2!
Next
'PDFファイルを保存する
pdf.SaveToFile("BackgroundImage.pdf")
pdf.Close()
End Sub
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
何らかの理由で PDF のページサイズを変更する必要がある場合があります。たとえば、印刷するファイルのページサイズとプリンタで使用する用紙サイズが異なります。この記事では、Spire.PDF for .NET を使用して、C# および VB.NET でプログラムによって PDF ページサイズを変更する方法を示します。
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
PDF ファイルのページサイズを変更する方法は、新しい PDF ファイルを作成し、必要なサイズのページを追加することです。次に、元の PDF ファイルのページに基づいてテンプレートを作成し、新しい PDF ファイルのページにテンプレートを描画します。この方法では、元の PDF ファイルのテキスト、画像、その他の要素が保持されます。
Spire.PDF for .NET は、letter、legal、A0、A1、A2、A3、A4、B0、B1、B2、B3、B4 など、さまざまな標準用紙サイズをサポートしています。以下に詳細な操作手順を示します。
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace ChangePageSizeToStandardPaperSize
{
class Program
{
static void Main(string[] args)
{
//PdfDocumentインスタンスを初期化する
PdfDocument originPdf = new PdfDocument();
//元のPDFドキュメントをロードする
originPdf.LoadFromFile("Sample.pdf");
//新しいPDFドキュメントを作成する
PdfDocument newPdf = new PdfDocument();
//元のPDFのページをループする
foreach(PdfPageBase page in originPdf.Pages)
{
//A 1サイズのページを新しいPDFに追加する
PdfPageBase newPage = newPdf.Pages.Add(PdfPageSize.A1, new PdfMargins(0));
//PdfTextLayoutインスタンスを作成する
PdfTextLayout layout = new PdfTextLayout();
//テキストレイアウトを1ページに設定する(設定されていない場合、コンテンツはページサイズに合わせてスケールできません)
layout.Layout = PdfLayoutType.OnePage;
//元のPDFのページに基づいてテンプレートを作成する
PdfTemplate template = page.CreateTemplate();
//テンプレートを新しいPDFのページに描画する
template.Draw(newPage, new PointF(0, 0), layout);
}
//結果文書を保存する
newPdf.SaveToFile("ChangePageSizeToA1.pdf");
}
}
}
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
Namespace ChangePageSizeToStandardPaperSize
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'PdfDocumentインスタンスを初期化する
Dim originPdf As PdfDocument = New PdfDocument()
'元のPDFドキュメントをロードする
originPdf.LoadFromFile("Sample.pdf")
'新しいPDFドキュメントを作成する
Dim newPdf As PdfDocument = New PdfDocument()
'元のPDFのページをループする
For Each page As PdfPageBase In originPdf.Pages
'A 1サイズのページを新しいPDFに追加する
Dim newPage As PdfPageBase = newPdf.Pages.Add(PdfPageSize.A1, New PdfMargins(0))
'PdfTextLayoutインスタンスを作成する
Dim layout As PdfTextLayout = New PdfTextLayout()
'テキストレイアウトを1ページに設定する(設定されていない場合、コンテンツはページサイズに合わせてスケールできません)
layout.Layout = PdfLayoutType.OnePage
'元のPDFのページに基づいてテンプレートを作成する
Dim template As PdfTemplate = page.CreateTemplate()
'テンプレートを新しいPDFのページに描画する
template.Draw(newPage, New PointF(0, 0), layout)
Next
'結果文書を保存する
newPdf.SaveToFile("ChangePageSizeToA1.pdf")
End Sub
End Class
End Namespace
Spire.PDF for .NET は、測定単位としてポイント(1/72インチ)を使用します。PDF のページサイズをインチやミリメートルなどの他の単位のカスタム用紙サイズに変更する必要がある場合は、PdfUnitConvertor クラスを使用してポイントに変換できます。
以下に詳細な操作手順を示します。
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace ChangePageSizeToCustomPaperSize
{
class Program
{
static void Main(string[] args)
{
//PdfDocumentインスタンスを初期化する
PdfDocument originPdf = new PdfDocument();
//元のPDFドキュメントをロードする
originPdf.LoadFromFile("Sample.pdf");
//新しいPDFドキュメントを作成する
PdfDocument newPdf = new PdfDocument();
// PdfUnitConvertorインスタンスを初期化する
PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
//カスタムサイズ(インチ)をポイントに変換する
float width = unitCvtr.ConvertUnits(6.5f, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point);
float height = unitCvtr.ConvertUnits(8.5f, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point);
//カスタムサイズから新しいSizeFインスタンスを作成して、新しいPDFのページサイズとして使用する
SizeF size = new SizeF(width, height);
//元のPDFのページをループする
foreach (PdfPageBase page in originPdf.Pages)
{
//新しいPDFにカスタムサイズ(6.5*8.5インチ)のページを追加する
PdfPageBase newPage = newPdf.Pages.Add(size, new PdfMargins(0));
//PdfTextLayoutインスタンスを初期化する
PdfTextLayout layout = new PdfTextLayout();
//テキストレイアウトを1ページに設定する(設定されていない場合、コンテンツはページサイズに合わせてスケールできません)
layout.Layout = PdfLayoutType.OnePage;
//元のPDFのページに基づいてテンプレートを作成する
PdfTemplate template = page.CreateTemplate();
//テンプレートを新しいPDFのページに描画する
template.Draw(newPage, new PointF(0, 0), layout);
}
//結果文書を保存する
newPdf.SaveToFile("ChangePageSizeToCustomSize.pdf");
}
}
}
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
Namespace ChangePageSizeToCustomPaperSize
Friend Class Program
Private Shared Sub Main(ByVal args As String())
' PdfDocumentインスタンスを初期化する
Dim originPdf As PdfDocument = New PdfDocument()
'元のPDFドキュメントをロードする
originPdf.LoadFromFile("Sample.pdf")
'新しいPDFドキュメントを作成する
Dim newPdf As PdfDocument = New PdfDocument()
' PdfUnitConvertorインスタンスを初期化する
Dim unitCvtr As PdfUnitConvertor = New PdfUnitConvertor()
'カスタムサイズ(インチ)をポイントに変換する
Dim width As Single = unitCvtr.ConvertUnits(6.5F, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point)
Dim height As Single = unitCvtr.ConvertUnits(8.5F, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point)
'カスタムサイズから新しいSizeFインスタンスを作成して、新しいPDFのページサイズとして使用する
Dim size As SizeF = New SizeF(width, height)
'元のPDFのページをループする
For Each page As PdfPageBase In originPdf.Pages
'新しいPDFにカスタムサイズ(6.5*8.5インチ)のページを追加する
Dim newPage As PdfPageBase = newPdf.Pages.Add(size, New PdfMargins(0))
'PdfTextLayoutインスタンスを初期化する
Dim layout As PdfTextLayout = New PdfTextLayout()
'テキストレイアウトを1ページに設定する(設定されていない場合、コンテンツはページサイズに合わせてスケールできません)
layout.Layout = PdfLayoutType.OnePage
'元のPDFのページに基づいてテンプレートを作成する
Dim template As PdfTemplate = page.CreateTemplate()
'テンプレートを新しいPDFのページに描画する
template.Draw(newPage, New PointF(0, 0), layout)
Next
'結果文書を保存する
newPdf.SaveToFile("ChangePageSizeToCustomSize.pdf")
End Sub
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。