バイト配列は、データの保存または送信に役立ちます。同様に、PDFファイル形式はその機能と互換性のために人気があります。 C#言語を使用して、PDFファイルをバイト配列に変換したり、バイト配列をPDFファイルに変換したりできます。これにより、PDFファイルをデータベースに効率的に保存およびアーカイブできます。バイト配列を使用してデータをシリアル化することもできます。これらのフォーマットの相互変換性を調べてみましょう。
PDFファイルからバイト配列およびバイト配列からPDFファイルへの変換–APIのインストール
Aspose.PDF for .NET APIは、PDFドキュメントを操作するための多くの機能を提供します。シンプルで簡単なAPI呼び出しを使用して、PDFファイルを作成、編集、操作、または変換できます。 PDFファイルをバイト配列に、またはその逆に変換するには、公式Webサイトからダウンロードするか、Visual Studio IDEの以下のインストールコマンドを使用してNuGetギャラリーからAPIをダウンロードする必要があります。
PM> Install-Package Aspose.Pdf
C#を使用してPDFファイルをバイト配列に変換する
PDFをバイト配列に変換して、さらに処理するために送信または保存することができます。たとえば、PDFドキュメントをシリアル化してから、バイト配列に変換する必要がある場合があります。 PDFをバイト配列に変換するには、以下の手順に従う必要があります。
- 入力PDFファイルをロード
- バイト配列を初期化する
- FileStreamオブジェクトを初期化します
- バイト配列にファイルの内容をロードします
これらすべての手順を実行すると、PDFファイルをバイト配列の形式で処理できるようになります。たとえば、次の例のような別の関数に渡すことができます。
次のコードは、C#を使用してPDFファイルをバイト配列に変換する方法を示しています。ここで、結果のByteArrayは、入力ファイルを画像に変換するメソッドに渡されます。
dataDir = @"D:\Test\";
// 入力PDFファイルをロードします
string inputFile = dataDir + @"testpdf.pdf";
// バイト配列を初期化します
byte[] buff = null;
// FileStreamオブジェクトを初期化します
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;
// バイト配列にファイルの内容をロードします
buff = br.ReadBytes((int) numBytes);
fs.Close();
// バイト配列でPDFファイルを操作する
ConvertPDFToJPEG(buff, 300, dataDir);
public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
{
// ドキュメントを開く
using (MemoryStream InputStream = new MemoryStream(PDFBlob))
{
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(InputStream);
for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)
{
using (FileStream imageStream = new FileStream(dataDir + "image" + pageCount + "_out" + ".jpg", FileMode.Create))
{
// 指定された属性でJPEGデバイスを作成します
// 幅、高さ、解像度、品質
// 品質[0-100]、100が最大
// 解決オブジェクトの作成
Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution);
// JpegDevice jpegDevice = new JpegDevice(500、700、resolution、100);
// 風景かどうかを判断するために以下を追加しました
Int32 height, width = 0;
PdfFileInfo info = new PdfFileInfo(pdfDocument);
width = Convert.ToInt32(info.GetPageWidth(pdfDocument.Pages[pageCount].Number));
height = Convert.ToInt32(info.GetPageHeight(pdfDocument.Pages[pageCount].Number));
Aspose.Pdf.Devices.JpegDevice jpegDevice =
//new Aspose.Pdf.Devices.JpegDevice(Aspose.Pdf.PageSize.A4、res、100);
new Aspose.Pdf.Devices.JpegDevice(width, height, res, 100);
// 特定のページを変換し、画像を保存してストリーミングする
//Aspose.Pdf.PageSize.A4.IsLandscape = true;
jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);
// ストリームを閉じる
imageStream.Close();
}
}
}
}
C#を使用してバイト配列をPDFファイルに変換する
さらに別のステップに進みましょう。バイト配列をPDFファイルに変換できます。画像をバイト配列としてPDFファイルに変換する例でこれを学びましょう。バイト配列をPDFファイルに変換するには、次の手順に従う必要があります。
- 入力ファイルをロードします
- バイト配列を初期化します
- 入力画像をバイト配列にロードします
- Documentクラスのインスタンスを初期化します
- PDFページに画像を追加する
- 出力PDFファイルを保存
次のコードは、C#を使用してプログラムでバイト配列をPDFファイルに変換する方法を説明しています。
// 入力ファイルをロードします
string inputFile = dataDir + @"Test.PNG";
// バイト配列を初期化します
byte[] buff = null;
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;
// 入力画像をバイト配列にロードします
buff = br.ReadBytes((int)numBytes);
Document doc = new Document();
// ドキュメントのページコレクションにページを追加する
Page page = doc.Pages.Add();
// ソース画像ファイルをStreamオブジェクトにロードします
MemoryStream outstream = new MemoryStream();
MemoryStream mystream = new MemoryStream(buff);
// ロードされた画像ストリームでBitMapオブジェクトをインスタンス化します
Bitmap b = new Bitmap(mystream);
// 画像が収まるように余白を設定します。
page.PageInfo.Margin.Bottom = 0;
page.PageInfo.Margin.Top = 0;
page.PageInfo.Margin.Left = 0;
page.PageInfo.Margin.Right = 0;
page.CropBox = new Aspose.Pdf.Rectangle(0, 0, b.Width, b.Height);
// 画像オブジェクトを作成する
Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
// セクションの段落コレクションに画像を追加します
page.Paragraphs.Add(image1);
// 画像ファイルストリームを設定する
image1.ImageStream = mystream;
// 結果のPDFファイルを保存します
doc.Save(outstream, SaveFormat.Pdf);
//doc.Save(dataDir + "outstream.pdf"、SaveFormat.Pdf);
// memoryStreamオブジェクトを閉じます
mystream.Close();
結論
この記事では、C#プログラミング言語を使用してPDFファイルをバイト配列に変換する方法とバイト配列をPDFファイルに変換する方法について説明しました。 PDFファイルをさらに操作することに興味がある場合は、無料サポートフォーラムを介して要件を共有してください。さらに、APIドキュメントおよびAPIリファレンスを調べて、APIが提供する機能の詳細な分析を行うこともできます。ご連絡をお待ちしております!