2014-11-19 10 views
6

Próbuję użyć pliku PDF do tłoczenia i trzeba go obrócić o 90 stopni, aby go poprawnie ułożyć? Czy ktoś wie, jak to zrobić? Nie można go znaleźć w Internecie.Obracanie PDF o 90 stopni za pomocą iTextSharp w języku C#

+1

możliwość oprawienia 'PdfStamper' do' PdfReader' ale przed wami możesz dowolnie manipulować plikiem PDF za pomocą dowolnych metod dostępnych z obiektu 'PdfReader'. Zobacz tutaj [oficjalną próbkę] (http://itextpdf.com/examples/iia.php?id=232) w Javie lub bardzo podobne, ale nie dokładnie to samo [tutaj] (http://stackoverflow.com/a/5349641/231316) w języku C#. –

Odpowiedz

10

Przykład Rotate90Degrees używa PdfReader do pobrania instancji dokumentu, a następnie zmienia wartość /Rotate w każdym słowniku strony. Jeśli nie ma takiego wpisu, wpis /Rotate o wartości 90 dodaje:

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

Gdy to nastąpi, używamy PdfStamper utrzymują się zmiany:

PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); 
stamper.close(); 
reader.close(); 

To jest dla iText Java. W przypadku iTextSharp przeniesienie języka Java na język C# jest łatwe, ponieważ terminologia jest identyczna. Zmiana niektórych przypadkach niższe w górnych przypadkach tak:

PdfDictionary page = reader.GetPageN(1); 
page.Put(PdfName.ROTATE, new PdfNumber(90)); 

Jest mniej więcej identyczny fragment kodu w ramach zapytania tego postu: How to rotate PDF page with iTextSharp without causing error in ghostscript?

Powiązane problemy