Šioje trumpoje mokymo programoje paaiškinama, kaip sujungti PDF su C# REST API. Išmoksite sujungti visus PDF failus su C# REST sąsaja naudodami SDK. Jame bus paaiškinti visi veiksmai, kurių reikia norint sukurti programą, skirtą kelių PDF failų derinimui.
Būtina sąlyga
parsisiųsti Aspose.PDF Cloud SDK for Dotnet
Nustatykite C# projektą naudodami aukščiau pateiktą SDK
Veiksmai, kaip sujungti PDF su C# Low Code API
- Nustatykite API raktą ir SID PdfApi klasės objekto inicijavimui
- Sukurkite objektą MergeDocuments ir pateikite PDF failų, kuriuos norite sujungti, sąrašą
- Įkelkite visus šaltinio PDF failus naudodami UploadFile() metodą PdfApi klasėje
- Iškvieskite metodą PutMergeDocuments(), kad sujungtumėte visus PDF failus į vieną paskirties PDF failą
- Atsisiųskite ir išsaugokite išvesties PDF failą, kuriame yra visų sujungtų PDF failų turinys
Šie veiksmai apibendrina, kaip sujungti PDF internete su C# REST API. Naudokite MergeDocuments klasės objektą, kad sukurtumėte PDF failų, kuriuos norite sujungti, sąrašą ir įkelkite visus šiuos PDF failus į debesį naudodami PdfApi.UploadFile() metodą ir iškvieskite PutMergeDocuments() metodą, kad sujungtumėte PDF failus internete. API iškvietimas grąžina būseną Gerai, po to galite iškviesti metodą DownloadFile, kad gautumėte išvesties PDF failą.
Kodas, skirtas sujungti PDF failus su C# .NET pagrindu veikiančiu 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); | |
} | |
} | |
} | |
} |
Šis kodas mus išmokė, kaip sujungti PDF failus su C# REST sąsaja. Metodo UploadFile() naudokite panašius pavadinimus, kurie naudojami PDF failų sąraše objekte MergeDocuments. Atsisiuntę gautą PDF failą, nustatykite parametrą Position į nulį, kitaip negalėsite išsaugoti failo diske.
Šiame straipsnyje paaiškinta, kaip sujungti PDF dokumentus internete naudojant C# .NET pagrįstą API. Norėdami sukurti tuščią PDF failą, žr. šį straipsnį: Sukurkite PDF dokumentą naudodami NET REST API.