Sto usando la funzione qui sotto per dividere il pdf in due.Rotazione PDF in C# usando iTextSharp
Sebbene stia dividendo il pdf, il contenuto appare sottosopra. Come faccio a ruotarlo di 180 gradi.
Per favore aiuto. di seguito è il codice per lo stesso
private static void ExtractPages(string inputFile, string outputFile,
int start, int end)
{
// get input document
PdfReader inputPdf = new PdfReader(inputFile);
// retrieve the total number of pages
int pageCount = inputPdf.NumberOfPages;
if (end < start || end > pageCount)
{
end = pageCount;
}
// load the input document
Document inputDoc =
new Document(inputPdf.GetPageSizeWithRotation(1));
// create the filestream
using (FileStream fs = new FileStream(outputFile, FileMode.Create))
{
// create the output writer
PdfWriter outputWriter = PdfWriter.GetInstance(inputDoc, fs);
inputDoc.Open();
PdfContentByte cb1 = outputWriter.DirectContent;
// copy pages from input to output document
for (int i = start; i <= end; i++)
{
inputDoc.SetPageSize(inputPdf.GetPageSizeWithRotation(1));
inputDoc.NewPage();
PdfImportedPage page =
outputWriter.GetImportedPage(inputPdf, i);
int rotation = inputPdf.GetPageRotation(i);
if (rotation == 90 || rotation == 270)
{
cb1.AddTemplate(page, 0, -1f, 1f, 0, 0,
inputPdf.GetPageSizeWithRotation(i).Height);
}
else
{
cb1.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
}
}
inputDoc.Close();
}
}
Posso scala utilizzando iText con stesso codice –
+1: A quanto pare 'caso 0:' può essere abbreviato a 'writer.DirectContent.AddTemplate (importedPage, 0, 0);' La tua risposta è appena aiutato a risolvere un problema di ruotare un PDF esistente di altri 90, 180 o 270 gradi :) Sarebbe grandioso se quei parametri fossero documentati da qualche parte, poiché capisco che sono una trasformata matrix (?). Grazie molto. –
C'è un ulteriore problema con la rotazione delle pagine già ruotate. Ho usato la tua risposta e ne ho aggiunta una con le ulteriori manipolazioni della dimensione/rotazione della pagina per consentire la rotazione delle pagine già ruotate. –