如何在c#net中使用pdfbox从pdf获取图像
如何在c#net中使用pdfbox从pdf获取图像。 关于这个问题的所有答案都是用java语言发布的。 就我所见,没有人用c语言给出正确答案 我试过用c编写java代码,但有些方法在c中不起作用如何在c#net中使用pdfbox从pdf获取图像,c#,.net,pdfbox,C#,.net,Pdfbox,如何在c#net中使用pdfbox从pdf获取图像。 关于这个问题的所有答案都是用java语言发布的。 就我所见,没有人用c语言给出正确答案 我试过用c编写java代码,但有些方法在c中不起作用 我想使用c#net中的pdfbox从pdf文件中提取图像最后我得到了答案 在类PDFStreamEngine中扩展类 例如: public class ImageExtraction : PDFStreamEngine { int i=1; public void GetImageFro
我想使用c#net中的pdfbox从pdf文件中提取图像最后我得到了答案 在类PDFStreamEngine中扩展类 例如:
public class ImageExtraction : PDFStreamEngine
{
int i=1;
public void GetImageFromPDF(string fileName)
{
PDDocument pDDocument = PDDocument.load(new java.io.File(fileName));
PDPage page = new PDPage();
page = pDDocument.getPages().get(0);
ImageExtraction obj = new ImageExtraction();
processPage(page);
}
protected override void processOperator(Operator @operator, java.util.List operands)
{
string operation = @operator.getName();
if (operation == "Do")
{
PDDocument pDDocument = new PDDocument();
org.apache.pdfbox.cos.COSName objectName = (org.apache.pdfbox.cos.COSName)operands.get(0);
org.apache.pdfbox.pdmodel.graphics.PDXObject xobject = getResources().getXObject(objectName);
org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject pDImageXObject = new org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject(pDDocument);
org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject pDFormXObject = new org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject(pDDocument);
if (xobject.GetType().IsAssignableFrom(pDImageXObject.GetType()))
{
org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject image = (org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject)xobject;
int imageWidth = image.getWidth();
int imageHeight = image.getHeight();
// same image to local
java.awt.image.BufferedImage bImage = new java.awt.image.BufferedImage(imageWidth,
imageHeight, java.awt.image.BufferedImage.TYPE_INT_ARGB);
bImage = image.getImage();
javax.imageio.ImageIO.write(bImage, "PNG", new java.io.File(imageFolderPath + "image_" + i + ".png"));
i++;
Console.WriteLine("Image saved.");
}
else if (xobject.GetType().IsAssignableFrom(pDFormXObject.GetType()))
{
org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject form = (org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject)xobject;
showForm(form);
}
}
}
}
看起来有人启动了pdfbox的dotnet端口
C#不受支持,IKVM已停止使用,因此如果您坚持使用C#,您将很难使用。“不工作”方法可能来自PDFBox 2.0.*,而您的PDFBox版本可能来自1.8.hi@TilmanHausherr。请找到以下答案。它的工作很好,我从pdfI得到的图像无法测试,但我认为这可以用于简单的文件。(这里缺少的是模式和内联图像,但这是非常高级的东西)这是Java,不是吗?这段代码不是Java,这是c。我已经添加了PDFBox dll