gpt4 book ai didi

c# - 我如何使用 C# 中的 itextsharp 库识别 pdf 方向是横向还是纵向

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:26 24 4
gpt4 key购买 nike

有谁知道如何使用 C# 中的 itextsharp 库来识别 pdf 方向是横向还是纵向。

下面是我的代码,它正在检索 PDF 流并旋转图像,但我的问题是我们如何识别方向?

public static string ReadPdfFile(string fileName)
{
StringBuilder text = new StringBuilder();

if (File.Exists(fileName))
{




byte[] bytes = System.IO.File.ReadAllBytes(fileName);



using (MemoryStream ms = new MemoryStream())
{
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, ms);
doc.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage page;
PdfReader reader;
reader = new PdfReader(bytes);
int pages = reader.NumberOfPages;

// loop over document pages
for (int i = 1; i <= pages; i++)
{

page = writer.GetImportedPage(reader, i);
//Rectangle pagesize = reader.GetPageSizeWithRotation(0);
AffineTransform scale = new AffineTransform(0, 1.0F, -1.0F, 0, 500, 500);
cb.AddTemplate(page,scale);
}

doc.Close();
var rotatedFile = ms.GetBuffer();

ms.Flush();
ms.Dispose();
string filepath = @"D:\test2.pdf";
File.Delete(filepath);
using (FileStream Writer = new System.IO.FileStream(filepath, FileMode.Create, FileAccess.Write))
{
Writer.Write(rotatedFile, 0, rotatedFile.Length);
string actualFilePath = "test2.pdf";
filepath = actualFilePath;
}


}

请帮助我,在此先感谢!

最佳答案

我评估页面的矩形大小以找出答案。需要牢记的一点……您可以在同一个文件中有多个方向,因此您不能仅根据第一页来确定文件是横向的。如果所有页面都是横向的,则文件是横向的,否则它是一个混合方向的文件。

Rectangle currentPageRectangle = pdfReader.GetPageSizeWithRotation(<PageNumberHere>);
if (currentPageRectangle.Width > currentPageRectangle.Height)
{
//page is landscape
}
else
{
//page is portrait
}

关于c# - 我如何使用 C# 中的 itextsharp 库识别 pdf 方向是横向还是纵向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45617779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com