チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
大きな PDF ドキュメントは、電子メールで PDF ファイルを転送したい場合や、限られたストレージ容量のデバイスに PDF ファイルを保存したい場合など、すべての場合に適用されません。その時、PDF ファイルのサイズを圧縮することは、この問題を解決するための完璧な方法かもしれません。この記事では、Spire.PDF for .NET を使用して、C# および VB.NET でプログラムによって PDF ファイルを圧縮する方法を示します。
ここでは、画像、フィールド、コメント、ブックマーク、添付ファイル、埋め込みフォントを削除することによって PDF サイズを小さくすることには触れません。
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF次の手順は、Spire.PDF for .NET を使用して PDFファイルを圧縮する方法を示しています
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using Spire.Pdf.Utilities;
namespace CompressPdf
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentクラスのオブジェクトを作成する
PdfDocument doc = new PdfDocument();
// PDFファイルのロードする
doc.LoadFromFile(@"sample.pdf");
// incremental updateを無効にする
doc.FileInfo.IncrementalUpdate = false;
//圧縮レベルを最適に設定する
doc.CompressionLevel = PdfCompressionLevel.Best;
//ドキュメント内のページをループブラウズする
foreach (PdfPageBase page in doc.Pages)
{
//PdfImageHelperのオブジェクトを作成する
PdfImageHelper helper = new PdfImageHelper();
//特定のページの画像情報セットを取得する
PdfImageInfo[] imagesInfo = helper.GetImagesInfo(page);
//コレクション内のすべてのアイテムをループブラウズする
foreach (PdfImageInfo imageInfo in imagesInfo)
{
//特定の画像を圧縮画像と一緒に配置する
helper.ReplaceImage(imageInfo, CompressImage(imageInfo.Image));
}
}
//ドキュメントを別のPDFファイルに保存する
doc.SaveToFile("output.pdf");
doc.Close();
}
//画質を低下させることで画像を圧縮する
private static PdfBitmap CompressImage(Image img)
{
PdfBitmap newImage = new PdfBitmap(img);
newImage.Quality = 10;
return newImage;
}
}
}Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
Imports Spire.Pdf.Utilities
Namespace CompressPdf
Class Program
Shared Sub Main(ByVal args() As String)
' PdfDocumentクラスのオブジェクトを作成する
Dim doc As PdfDocument = New PdfDocument()
' PDFファイルのロードする
doc.LoadFromFile("sample.pdf")
' incremental updateを無効にする
doc.FileInfo.IncrementalUpdate = False
'圧縮レベルを最適に設定する
doc.CompressionLevel = PdfCompressionLevel.Best
'ドキュメント内のページをループブラウズする
Dim page As PdfPageBase
For Each page In doc.Pages
' PdfImageHelperのオブジェクトを作成する
Dim helper As PdfImageHelper = New PdfImageHelper()
'特定のページの画像情報セットを取得する
Dim imagesInfo() As PdfImageInfo = helper.GetImagesInfo(page)
'コレクション内のすべてのアイテムをループブラウズする
Dim imageInfo As PdfImageInfo
For Each imageInfo In imagesInfo
'特定の画像を圧縮画像と一緒に配置する
helper.ReplaceImage(imageInfo, CompressImage(imageInfo.Image))
Next
Next
'ドキュメントを別のPDFファイルに保存する
doc.SaveToFile("output.pdf")
doc.Close()
System.Diagnostics.Process.Start("output.pdf")
End Sub
'画質を低下させることで画像を圧縮する
Private Shared Function CompressImage(ByVal img As Image) As PdfBitmap
Dim NewImage As PdfBitmap = New PdfBitmap(img)
NewImage.Quality = 10
Return NewImage
End Function
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
場合によって、1つの PDF をいくつかのより小さな PDF に分割すると便利です。たとえば、大規模な契約書、レポート、書籍、学術論文、またはその他のドキュメントを小さな部分に分割して、レビューや再利用を容易にすることができます。この記事では、PDF を単一ページの PDF に分割する方法と、Spire.PDF for .NET を使用して C# および VB.NET で PDF をページ範囲ごとに分割する方法を学習します。
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDFSpire.PDF は、複数ページの PDF ドキュメントを複数の単一ページファイルに分割する Split() メソッドを提供します。詳細な手順は次のとおりです。
using System;
using Spire.Pdf;
namespace SplitPDFIntoIndividualPages
{
class Program
{
static void Main(string[] args)
{
//入力ファイルのパスを指定する
String inputFile = "C:\\Users\\Administrator\\Desktop\\License.pdf";
//出力ディレクトリを指定する
String outputDirectory = "C:\\Users\\Administrator\\Desktop\\Output\\";
//PdfDocumentオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//PDFファイルをロードする
doc.LoadFromFile(inputFile);
//PDFを1ページのPDFに分割する
doc.Split(outputDirectory + "output-{0}.pdf", 1);
}
}
}Imports System
Imports Spire.Pdf
Namespace SplitPDFIntoIndividualPages
Class Program
Shared Sub Main(ByVal args() As String)
'入力ファイルのパスを指定する
Dim inputFile As String = "C:\\Users\\Administrator\\Desktop\\License.pdf"
'出力ディレクトリを指定する
Dim outputDirectory As String = "C:\\Users\\Administrator\\Desktop\\Output\\"
'PdfDocumentオブジェクトを作成する
Dim doc As PdfDocument = New PdfDocument()
'PDFファイルをロードする
doc.LoadFromFile(inputFile)
'PDFを1ページのPDFに分割する
doc.Split(outputDirectory + "output-{0}.pdf", 1)
End Sub
End Class
End Namespace
PDF ドキュメントをページ範囲で分割するための簡単な方法は提供されていません。 そのために、2つ以上の新しい PDF ドキュメントを作成し、ソースドキュメントからそれらにページまたはページ範囲をインポートします。詳細な手順は次のとおりです。
using Spire.Pdf;
using System;
namespace SplitPdfByPageRanges
{
class Program
{
static void Main(string[] args)
{
//入力ファイルのパスを指定する
String inputFile = "C:\\Users\\Administrator\\Desktop\\License.pdf";
//出力ディレクトリを指定する
String outputDirectory = "C:\\Users\\Administrator\\Desktop\\Output\\";
//PdfDocumentオブジェクトの初期化中にソースPDFファイルをロードする
PdfDocument sourceDoc = new PdfDocument(inputFile);
//2つの追加のPdfDocumentオブジェクトを作成する
PdfDocument newDoc_1 = new PdfDocument();
PdfDocument newDoc_2 = new PdfDocument();
//ソースファイルの最初のページを最初のドキュメントに挿入する
newDoc_1.InsertPage(sourceDoc, 0);
//ソースファイルの残りのページを2番目のドキュメントに挿入する
newDoc_2.InsertPageRange(sourceDoc, 1, sourceDoc.Pages.Count - 1);
//2つのドキュメントをPDFファイルとして保存する
newDoc_1.SaveToFile(outputDirectory + "output-1.pdf");
newDoc_2.SaveToFile(outputDirectory + "output-2.pdf");
}
}
}Imports Spire.Pdf
Imports System
Namespace SplitPdfByPageRanges
Class Program
Shared Sub Main(ByVal args() As String)
'入力ファイルのパスを指定する
Dim inputFile As String = "C:\\Users\\Administrator\\Desktop\\License.pdf"
'出力ディレクトリを指定する
Dim outputDirectory As String = "C:\\Users\\Administrator\\Desktop\\Output\\"
'PdfDocumentオブジェクトの初期化中にソースPDFファイルをロードする
Dim sourceDoc As PdfDocument = New PdfDocument(inputFile)
'2つの追加のPdfDocumentオブジェクトを作成する
Dim NewDoc_1 As PdfDocument = New PdfDocument()
Dim NewDoc_2 As PdfDocument = New PdfDocument()
'ソースファイルの最初のページを最初のドキュメントに挿入する
NewDoc_1.InsertPage(sourceDoc, 0)
'ソースファイルの残りのページを2番目のドキュメントに挿入する
NewDoc_2.InsertPageRange(sourceDoc, 1, sourceDoc.Pages.Count - 1)
'2つのドキュメントをPDFファイルとして保存する
NewDoc_1.SaveToFile(outputDirectory + "output-1.pdf")
NewDoc_2.SaveToFile(outputDirectory + "output-2.pdf")
End Sub
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。