Tag: pdfbox

从pdf中识别rgb和cmyk颜色

我有一个PDF,由不同的颜色文本和背景颜色组成。 如何识别使用CMYK或RGB格式的PDF中使用的颜色? StringBuilder sb_Sourcepdf = new StringBuilder(); PdfReader reader_FirstPdf = new PdfReader(pdf_of_FirstFile); Document document = new Document(); PDFParser parser = new PDFParser(new FileInputStream(pdf_of_FirstFile)); parser.parse(); PDDocument docum = parser.getPDDocument(); PDFStreamEngine engine = new PDFStreamEngine(); PDPage page = (PDPage)docum.getDocumentCatalog().getAllPages().get(0); engine.processStream(page, page.findResources(), page.getContents().getStream()); PDGraphicsState graphicState = engine.getGraphicsState(); string colorname = graphicState.getStrokingColor().getColorSpace().getName(); graphicState.getTextState().getFont(); int r = graphicState.getNonStrokingColor().getJavaColor().getRed(); int g […]

如何从左下角到左上角更改pdf页面中文本的坐标

我正在使用PDFBOX和itextsharp dll并处理pdf。 这样我就可以得到一个矩形内文本的文本坐标。 使用itextsharp.dll提取矩形坐标。 基本上我从itextsharp.dll获取矩形坐标,其中itextsharp使用坐标系统作为左下角。 我从PDFBOX获取pdf页面文本,其中PDFBOX使用坐标系统作为左上角。 我需要帮助将坐标从左下角转换为左上角 提前致谢 更新我的问题 请原谅我,如果你理解我的问题,如果没有提供完整的信息.. 好吧,让我试着从一开始就提供更多细节。 我正在开发一个工具,我在其中获得一个PDF,其中使用评论部分中的一些绘图标记绘制一个矩形。 现在我正在使用iTextsharp读取矩形坐标 PdfDictionary pageDict = pdReader.GetPageN(page_no); PdfArray annotArray = pageDict.GetAsArray(PdfName.ANNOTS); 其中pdReader是PdfReader。 并使用PDFBOX提取页面文本及其坐标。 在哪里我有一个类创建pdfBoxTextExtraction在这我处理文本和坐标,使它返回文本和llx,lly,urx,ury “逐行”请逐行注意而不是句子明智。 所以我想提取位于Rectangle坐标内的文本。 当从itextsharp返回矩形的坐标时,我陷入困境,即llx,lly,urx,矩形的ury在左下角有一个原点,因为从PDFBOX返回的文本坐标在左上角有一个原点。然后我意识到我需要调整y轴,使原点从左下角移动到左上角。 因为我得到了页面的高度和庄稼的高度 iTextSharp.text.Rectangle mediabox = reader.GetPageSize(page_no); iTextSharp.text.Rectangle cropbox = reader.GetCropBox(page_no); 做了一些基本调整 lly = mediabox.Top – lly ury = mediabox.Top – ury 在某些情况下,调整工作,而在一些PDF需要调整cropbox lly = cropbox .Top – lly ury […]

如何使用C#检查PDF是否启用了Reader?

我唯一的要求是在文件夹中找到选定的pdf是否启用了Reader,更具体地说,如果以允许人们添加注释(例如注释)的方式定义使用权限。 我在Windows应用程序中这样做。 如果单击某个按钮,则会触发一个事件,在文件夹中搜索PDF文件。 此事件需要检查文件夹中的PDF是否启用了Reader以进行注释。 如果是,我需要删除评论使用权或将PDF还原为其原始版本。 我的代码只能在文件夹中找到PDF文件。 我不知道如何检查选定的PDF是否启用了评论。 请温柔并提出解决方案。 这是我的代码: private void button1_Click(object sender, EventArgs e) { { string[] filePaths = Directory.GetFiles(“D:\\myfolder\\pdffolder”); List files = new List(); foreach (string filePath in filePaths) { —need to check comment enabled or not— } } }