Unisci PDF con l'API REST C#

Questo breve tutorial spiega come unire PDF con l’API REST C#. Imparerai a unire tutti i PDF con l’interfaccia C# REST utilizzando l’SDK. Spiegherà tutti i passaggi necessari per sviluppare l’applicazione per combinare più file PDF.

Prerequisito

Passaggi per combinare PDF con l’API C# Low Code

  1. Imposta la chiave API e il SID per inizializzare l’oggetto classe PdfApi
  2. Crea l’oggetto MergeDocuments e fornisci l’elenco dei file PDF che desideri unire
  3. Carica tutti i file PDF di origine utilizzando il metodo UploadFile() nella classe PdfApi
  4. Chiama il metodo PutMergeDocuments() per unire tutti i file PDF in un unico file PDF di destinazione
  5. Scarica e salva il file PDF di output contenente il contenuto di tutti i file PDF uniti

Questi passaggi riepilogano come unire PDF online con l’API REST C#. Utilizza l’oggetto della classe MergeDocuments per creare l’elenco dei file PDF che desideri unire e carica tutti questi file PDF nel cloud utilizzando il metodo PdfApi.UploadFile() e richiama il metodo PutMergeDocuments() per unire i file PDF online. La chiamata API restituisce lo stato OK, dopodiché puoi chiamare il metodo DownloadFile per recuperare il file PDF di output.

Codice per combinare file PDF con API basata su C# .NET

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);
}
}
}
}

Questo codice ci ha insegnato come concatenare file PDF con l’interfaccia REST C#. Utilizzare i nomi simili nel metodo UploadFile() utilizzati nell’elenco dei file PDF nell’oggetto MergeDocuments. Quando scarichi il file PDF risultante, imposta il parametro Posizione su zero altrimenti non potrai salvare il file sul disco.

Questo articolo ha spiegato come unire documenti PDF online con l’API basata su C# .NET. Per creare un file PDF vuoto, fare riferimento al seguente articolo: Crea un documento PDF con l’API NET REST.

 Italiano