使用iTextSharp在C#中旋转PDF
发布时间:2020-12-15 06:14:49 所属栏目:百科 来源:网络整理
导读:我正在使用下面的功能把pdf分解成两个. 虽然它是分割的pdf,内容正在颠倒.如何将其旋转180度. 请帮忙.下面是代码相同 private static void ExtractPages(string inputFile,string outputFile,int start,int end) { // get input document PdfReader inputPdf
我正在使用下面的功能把pdf分解成两个.
虽然它是分割的pdf,内容正在颠倒.如何将其旋转180度. 请帮忙.下面是代码相同 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,-1f,1f,inputPdf.GetPageSizeWithRotation(i).Height); } else { cb1.AddTemplate(page,0); } } inputDoc.Close(); } } 解决方法
我试过你的代码,它对我来说很好分页保持原来的方向.
解决方法可能是将页面显式旋转180度. 更换: cb1.AddTemplate(page,0); 附: cb1.AddTemplate(page,inputPdf.GetPageSizeWithRotation(i).Width,inputPdf.GetPageSizeWithRotation(i).Height); 如果你对inputPdf.GetPageRotation(i)的调用返回180,那么你可以在下面的if语句中处理这个(使用我建议的旋转代码== 180). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容