Te sugerimos que revises esta respuesta en un ambiente controlado antes de pasarlo a producción, saludos.
El ejemplo Rotate90Degrees usa PdfReader
para obtener una instancia del documento, luego cambia el /Rotate
valor en cada diccionario de página. Si no existe tal entrada, un /Rotate
entrada con valor 90
está agregado:
final PdfReader reader = new PdfReader(source);
final int pagesCount = reader.getNumberOfPages();
for (int n = 1; n <= pagesCount; n++)
final PdfDictionary page = reader.getPageN(n);
final PdfNumber rotate = page.getAsNumber(PdfName.ROTATE);
final int rotation =
rotate == null ? 90 : (rotate.intValue() + 90) % 360;
page.put(PdfName.ROTATE, new PdfNumber(rotation));
Una vez hecho esto, utilizamos un PdfStamper
para persistir el cambio:
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
reader.close();
Esto es para iText Java. Para iTextSharp, migrar Java a C# es fácil ya que la terminología es idéntica. Cambia algunas minúsculas a mayúsculas así:
PdfDictionary page = reader.GetPageN(1);
page.Put(PdfName.ROTATE, new PdfNumber(90));
Hay un fragmento de código más o menos idéntico en la parte de la pregunta de esta publicación: ¿Cómo rotar una página PDF con iTextSharp sin causar un error en ghostscript?
Si crees que te ha sido de utilidad nuestro artículo, sería de mucha ayuda si lo compartieras con el resto desarrolladores y nos ayudes a difundir nuestro contenido.