Est-ce que quelqu'un sait comment fusionner deux pdf (l'un d'entre eux ont une corbeille et l'autre n'a pas, et ils ont une taille de page différente) en utilisant iText?iText Fusionner PDF avec cropbox
est le code ici, que j'utilise pour PDF fusion:
public bool MergeFiles(string destinationFile, string[] sourceFiles)
{
bool bSucess = true;
if (System.IO.File.Exists(destinationFile))
System.IO.File.Delete(destinationFile);
string[] sSrcFile;
sSrcFile = new string[2];
string[] arr = new string[2];
for (int i = 0; i <= sourceFiles.Length - 1; i++)
{
if (sourceFiles[i] != null)
{
if (sourceFiles[i].Trim() != "")
arr[i] = sourceFiles[i].ToString();
}
}
if (arr != null)
{
sSrcFile = new string[2];
for (int ic = 0; ic <= arr.Length - 1; ic++)
{
sSrcFile[ic] = arr[ic].ToString();
}
}
string sPDFPath = Server.MapPath(@"pdftemp/");
Scripting.FileSystemObject fso = new Scripting.FileSystemObjectClass();
try
{
int f = 0;
PdfReader reader = new PdfReader(sSrcFile[f]);
int n = reader.NumberOfPages;
Console.WriteLine("There are " + n + " pages in the original file.");
Document document = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(destinationFile, FileMode.Create));
PdfDate st = new PdfDate(DateTime.Today);
document.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage page;
int rotation;
while (f < sSrcFile.Length)
{
int i = 0;
while (i < n)
{
i++;
document.SetPageSize(PageSize.A4);
document.NewPage();
page = writer.GetImportedPage(reader, i);
rotation = reader.GetPageRotation(i);
if (rotation == 90 || rotation == 270)
{
cb.AddTemplate(page, 0, -1f, 1f, 0, 0, reader.GetPageSizeWithRotation(i).Height);
}
else
{
cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
}
Console.WriteLine("Processed page " + i);
}
f++;
if (f < sSrcFile.Length)
{
reader = new PdfReader(sSrcFile[f]);
n = reader.NumberOfPages;
Console.WriteLine("There are " + n + " pages in the original file.");
}
}
document.Close();
}
catch (Exception e)
{
bSucess = false;
}
return bSucess;
}
Mais il ne semble pas manipuler la différence de CropBox entre les pages (mauvaise position de contenu à la page qui ont CropBox), quelqu'un a un meilleur code mettre le contenu dans la bonne position?