Այս կարճ ձեռնարկը ցույց է տալիս, թե ինչպես միաձուլել PDF-ը C# REST API-ի հետ: Դուք կսովորեք միաձուլել բոլոր PDF-ները C# REST ինտերֆեյսի հետ՝ օգտագործելով SDK-ն: Այն կբացատրի բոլոր քայլերը, որոնք անհրաժեշտ են մի քանի PDF ֆայլեր համատեղելու համար հավելված մշակելու համար:
Նախադրյալ
Կարգավորեք C# նախագիծը վերը նշված SDK-ով
PDF-ը C# Low Code API-ի հետ համատեղելու քայլեր
- Սահմանեք API ստեղնը և SID-ը PdfApi դասի օբյեկտի սկզբնավորման համար
- Ստեղծեք MergeDocuments օբյեկտը և տրամադրեք PDF ֆայլերի ցանկը, որոնք ցանկանում եք միաձուլել
- Վերբեռնեք բոլոր սկզբնաղբյուր PDF ֆայլերը՝ օգտագործելով UploadFile() մեթոդը PdfApi դասում
- Զանգահարեք PutMergeDocuments() մեթոդը՝ բոլոր PDF ֆայլերը մեկ նպատակակետ PDF ֆայլի մեջ միացնելու համար
- Ներբեռնեք և պահպանեք ելքային PDF ֆայլը, որը պարունակում է բոլոր միաձուլված PDF ֆայլերի բովանդակությունը
Այս քայլերն ամփոփում են, թե ինչպես * PDF-ը առցանց միացնել C# REST API-ին*: Օգտագործեք MergeDocuments դասի օբյեկտը՝ ստեղծելու PDF ֆայլերի ցանկը, որոնք ցանկանում եք միաձուլել, և վերբեռնեք այս բոլոր PDF ֆայլերը ամպի մեջ՝ օգտագործելով PdfApi.UploadFile() մեթոդը, և կանչեք PutMergeDocuments() մեթոդը՝ PDF ֆայլերը առցանց միացնելու համար: API-ի կանչը վերադարձնում է OK կարգավիճակը, որից հետո կարող եք զանգահարել DownloadFile մեթոդը՝ ելքային PDF ֆայլը ստանալու համար:
Կոդ՝ PDF ֆայլերը C# .NET-ի վրա հիմնված 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() մեթոդում, ինչպես օգտագործվում է MergeDocuments օբյեկտի PDF ֆայլերի ցանկում: Ստացված PDF ֆայլը ներբեռնելիս դրեք Position պարամետրը զրոյի, այլապես չեք կարողանա ֆայլը պահել սկավառակի վրա:
Այս հոդվածը բացատրել է, թե ինչպես միաձուլել PDF փաստաթղթերը առցանց C# .NET-ի վրա հիմնված API-ի հետ: Դատարկ PDF ֆայլ ստեղծելու համար տես հետևյալ հոդվածը՝ Ստեղծեք PDF փաստաթուղթ NET REST API-ով.