この短いチュートリアルでは、C# REST API を使用して PDF をマージする 方法について説明します。SDK を使用して、C# REST インターフェイスですべての PDF をマージする 方法を学習します。複数の PDF ファイルを結合するアプリケーションを開発するために必要なすべての手順について説明します。
前提条件
上記のSDKを使用してC#プロジェクトをセットアップする
PDF と C# ローコード API を組み合わせる手順
- PdfApi クラスオブジェクトを初期化するための API キーと SID を設定します
- MergeDocumentsオブジェクトを作成し、結合するPDFファイルのリストを指定します。
- PdfApiクラスのUploadFile()メソッドを使用して、すべてのソースPDFファイルをアップロードします。
- PutMergeDocuments() メソッドを呼び出して、すべての PDF ファイルを 1 つの PDF ファイルに結合します。
- 結合されたすべてのPDFファイルの内容を含む出力PDFファイルをダウンロードして保存します。
これらの手順は、C# REST API を使用して PDF をオンラインで結合する方法をまとめたものです。MergeDocuments クラス オブジェクトを使用して結合する PDF ファイルのリストを作成し、PdfApi.UploadFile() メソッドを使用してこれらすべての PDF ファイルをクラウドにアップロードし、PutMergeDocuments() メソッドを呼び出して PDF ファイルをオンラインで結合します。API 呼び出しはステータス OK を返し、その後 DownloadFile メソッドを呼び出して出力 PDF ファイルを取得できます。
C# .NET ベースの API を使用して PDF ファイルを結合するコード
using System; | |
using System.IO; | |
using Aspose.Pdf.Cloud.Sdk.Api; | |
using Aspose.Pdf.Cloud.Sdk.Model; | |
using System.Collections.Generic; | |
namespace Aspose.PDF.Cloud.Examples.Kb | |
{ | |
public class PdfTasks | |
{ | |
public static void SplitPDFFiles() | |
{ | |
PdfApi pdfApi = new PdfApi("API KEY", "API SID"); | |
String fileName = "sample.pdf"; | |
String format = "pdf"; | |
int from = 1; | |
int to = 2; | |
String storage = ""; | |
String folder = ""; | |
try | |
{ | |
// Upload source file to aspose cloud storage | |
pdfApi.UploadFile(fileName, new MemoryStream( System.IO.File.ReadAllBytes(fileName))); | |
// Invoke Aspose.PDF Cloud SDK API to split pdf files | |
SplitResultResponse apiResponse = pdfApi.PostSplitDocument(fileName, format, from, to, storage, folder); | |
if (apiResponse.Status.Equals("OK")) | |
{ | |
// Download created pdf file | |
foreach(var item in apiResponse.Result.Documents) | |
{ | |
Stream storageRes = pdfApi.DownloadFile(item.Href); | |
storageRes.Position = 0; | |
using (FileStream fileStream = new FileStream(item.Href, FileMode.Create, FileAccess.Write)) | |
{ | |
storageRes.CopyTo(fileStream); | |
} | |
} | |
Console.WriteLine("Split PDF Files, Done!"); | |
Console.ReadKey(); | |
} | |
} | |
catch (Exception ex) | |
{ | |
System.Diagnostics.Debug.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace); | |
} | |
} | |
public static void MergePDFFiles() | |
{ | |
PdfApi pdfApi = new PdfApi("API KEY", "API SID");// For merging PDF files | |
String fileName = "sample-merged.pdf"; | |
String storage = ""; | |
String folder = ""; | |
MergeDocuments body = new MergeDocuments(new List<string> { "sample.pdf", "input.pdf" }); | |
try | |
{ | |
// Load the input Word file | |
pdfApi.UploadFile("sample.pdf", new MemoryStream(System.IO.File.ReadAllBytes("sample.pdf"))); | |
pdfApi.UploadFile("input.pdf", new MemoryStream(System.IO.File.ReadAllBytes("input.pdf"))); | |
// Merge the PDF files | |
DocumentResponse apiResponse = pdfApi.PutMergeDocuments(fileName, body); | |
if (apiResponse != null && apiResponse.Status.Equals("OK")) | |
{ | |
// Download created pdf file | |
Stream storageRes = pdfApi.DownloadFile(fileName); | |
// Save response stream to a file | |
storageRes.Position = 0; | |
using (FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write)) | |
{ | |
storageRes.CopyTo(fileStream); | |
} | |
Console.WriteLine("Merge Multiple PDF Files, Done!"); | |
Console.ReadKey(); | |
} | |
} | |
catch (Exception ex) | |
{ | |
System.Diagnostics.Debug.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace); | |
} | |
} | |
public static void CreatePDF() | |
{ | |
try | |
{ | |
PdfApi pdfApi = new PdfApi("2086fd1a0db8175482a26f53c230483e", "fd43bbdc-4e3d-4a75-8847-2138b3ad167e"); | |
DocumentResponse response = pdfApi.PutCreateDocument("newPdfFile"); | |
if (response != null && response.Status.Equals("OK")) | |
{ | |
Paragraph para = PrepareParagraph("This is first text for new PDF"); | |
pdfApi.PutAddText("newPdfFile", 1, para); | |
var stream = pdfApi.DownloadFile("newPdfFile", null, null); | |
using (var fileStream = File.Create("output.pdf")) | |
{ | |
stream.Seek(0, SeekOrigin.Begin); | |
stream.CopyTo(fileStream); | |
} | |
} | |
} | |
catch (Exception ex) | |
{ | |
System.Diagnostics.Debug.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace); | |
Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace); | |
} | |
} | |
private static Paragraph PrepareParagraph(string text) | |
{ | |
List<TextLine> textLines = new List<TextLine>(); | |
Segment segment = new Segment(Value: text); | |
List<Segment> segments = new List<Segment>(); | |
segments.Add(segment); | |
TextLine textLine = new TextLine(Segments: segments); | |
textLines.Add(textLine); | |
Rectangle rectangle = new Rectangle(50.0, 800, 300.0, 850); | |
Paragraph paragraph = new Paragraph(Lines: textLines, Rectangle: rectangle); | |
return paragraph; | |
} | |
//THIS CODE IS CREATINg INVALID PDF FILE | |
public static void CreatePDFFromXML() | |
{ | |
// For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.Pdf-for-Cloud | |
PdfApi pdfApi = new PdfApi("2086fd1a0db8175482a26f53c230483e", "fd43bbdc-4e3d-4a75-8847-2138b3ad167e"); | |
String fileName = "input_out.pdf"; | |
String templateFile = "sample.xsl"; | |
String dataFile = "sample.xml"; | |
//String templateType = "xml"; | |
String storageRef = "my_xml"; | |
//String folder = ""; | |
try | |
{ | |
// Upload source file to aspose cloud storage | |
byte[] templateFileBytes = System.IO.File.ReadAllBytes(templateFile); | |
MemoryStream templateFileStream = new MemoryStream(templateFileBytes); | |
byte[] dataFileBytes = System.IO.File.ReadAllBytes(dataFile); | |
MemoryStream dataFileStream = new MemoryStream(dataFileBytes); | |
pdfApi.UploadFile(templateFile, templateFileStream); | |
pdfApi.UploadFile(dataFile, dataFileStream); | |
// Invoke Aspose.PDF Cloud SDK API to create Pdf from XML | |
//DocumentResponse apiResponse = pdfApi.PutCreateDocument(fileName, templateFile, dataFile); | |
AsposeResponse apiResponse = pdfApi.PutXmlInStorageToPdf(fileName, dataFile, xslFilePath: templateFile, storage: "my_xml"); | |
if (apiResponse != null && apiResponse.Status.Equals("OK")) | |
{ | |
// Download created pdf file | |
Stream storageRes = pdfApi.DownloadFile(fileName); | |
// Save response stream to a file | |
//storageRes.CopyTo(new FileStream("Sample_out.pdf", FileMode.Create, FileAccess.Write)); | |
storageRes.Position = 0; | |
SaveStreamToFile(storageRes, fileName); | |
//Console.WriteLine("Create PDF from XML, Done!"); | |
//Console.ReadKey(); | |
} | |
} | |
catch (Exception ex) | |
{ | |
System.Diagnostics.Debug.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace); | |
} | |
} | |
private static void SaveStreamToFile(Stream sourceStream, string filePath) | |
{ | |
// Ensure the directory exists | |
//string directoryPath = Path.GetDirectoryName(filePath); | |
//if (!Directory.Exists(directoryPath)) | |
//{ | |
// Directory.CreateDirectory(directoryPath); | |
//} | |
// Create a FileStream to write the stream to the file | |
using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write)) | |
{ | |
sourceStream.CopyTo(fileStream); | |
} | |
} | |
} | |
} |
このコードでは、C# REST インターフェイスを使用して PDF ファイルを連結する方法を説明しました。MergeDocuments オブジェクトの PDF ファイルのリストで使用されているのと同じ名前を UploadFile() メソッドで使用します。結果の PDF ファイルをダウンロードするときは、Position パラメーターを 0 に設定してください。そうしないと、ファイルをディスクに保存できません。
この記事では、C# .NET ベースの API を使用して PDF ドキュメントをオンラインで結合する方法について説明しました。空の PDF ファイルを作成するには、次の記事を参照してください: NET REST API を使用して PDF ドキュメントを作成する。