Estoy utilizando la función siguiente para dividir el pdf en dos.Rotar PDF en C# usando iTextSharp
Aunque está dividiendo el pdf, el contenido aparece al revés. ¿Cómo lo giro 180 grados?
Por favor ayuda. a continuación es el código para el mismo
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();
}
}
¿Puedo escalar utilizando itext con el mismo código? –
+1: Aparentemente 'caso 0:' puede acortarse a 'writer.DirectContent.AddTemplate (importedPage, 0, 0);' Su respuesta me acaba de ayudar a resolver un problema de rotar un PDF existente en un 90, 180 o 270 grados adicionales :) Sería fantástico si esos parámetros estuvieran documentados en alguna parte, ya que supongo que son una transformación de matriz (?). Muchas gracias. –
Hay un problema adicional con la rotación de las páginas ya giradas. Usé su respuesta y agregué una con las manipulaciones adicionales de tamaño de página/rotación para permitir la rotación de las páginas ya giradas. El código anterior –