این آموزش کوتاه نحوه ادغام PDF با C# REST API را راهنمایی میکند. شما یاد خواهید گرفت که همه PDF ها را با C# REST Interface با استفاده از SDK ادغام کنید. تمام مراحل مورد نیاز برای توسعه برنامه برای ترکیب چندین فایل PDF را توضیح می دهد.
پيش نياز
پروژه C# را با SDK بالا راه اندازی کنید
مراحل ترکیب PDF با C# Low Code API
- کلید API و SID را برای مقداردهی اولیه شی کلاس PdfApi تنظیم کنید
- شی MergeDocuments را ایجاد کنید و لیستی از فایل های PDF را که می خواهید ادغام کنید ارائه دهید
- تمام فایل های PDF منبع را با استفاده از روش UploadFile() در کلاس PdfApi آپلود کنید
- برای ادغام همه فایلهای PDF در یک فایل PDF مقصد، روش PutMergeDocuments() را فراخوانی کنید
- فایل PDF خروجی حاوی محتویات تمام فایل های PDF ادغام شده را دانلود و ذخیره کنید
این مراحل نحوه ادغام PDF آنلاین با C# REST API را خلاصه می کند. از شی کلاس MergeDocuments برای ایجاد لیستی از فایلهای PDF که میخواهید ادغام شوند، استفاده کنید و همه این فایلهای PDF را با استفاده از روش PdfApi.UploadFile() در فضای ابری آپلود کنید و برای ادغام فایلهای PDF به صورت آنلاین از متد PutMergeDocuments فراخوانی کنید. فراخوانی API وضعیت OK را برمیگرداند و پس از آن میتوانید روش DownloadFile را برای بازیابی فایل PDF خروجی فراخوانی کنید.
کد برای ترکیب فایلهای PDF با C#.NET-based API
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); | |
} | |
} | |
} | |
} |
این کد به ما آموزش داده است که چگونه فایل های PDF را با رابط C# REST به هم پیوند دهیم. از نام های مشابه در متد UploadFile() همانطور که در لیست فایل های PDF در شی MergeDocuments استفاده می شود استفاده کنید. هنگامی که فایل PDF حاصل را دانلود می کنید، پارامتر Position را روی صفر قرار دهید در غیر این صورت نمی توانید فایل را روی دیسک ذخیره کنید.
این مقاله نحوه ادغام اسناد PDF آنلاین با C#.NET-based API را توضیح داده است. برای ایجاد یک فایل PDF خالی به مقاله زیر مراجعه کنید: با NET REST API یک سند PDF ایجاد کنید.