`
lozpeng
  • 浏览: 39588 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PDFRenderer 生成图片

    博客分类:
  • Java
UP 
阅读更多
将PDF文档中的页面生成图片,导出。
/**浏览页面,生成页面的图片字节数据
	 * 
	 * @param fileName 文档名称及路径
	 * @param page
	 * @param type
	 * @return
	 */
	public byte[] ViewPage(String fileName, int page, String type) {
		if(fileName==null||fileName.length()<=0)
			return null;
//		if(!fileName.endsWith("pdf")||!fileName.endsWith("PDF"))
//			return null;
		try
		{
			BitImgType imgType = BitImgType.valueOf(type.toUpperCase());
			if(imgType==null)return null;
			
			PDFFile pdfFile = this.getPdfFile(fileName);
			if(pdfFile==null)
				return null;
			PDFPage pdfPage = pdfFile.getPage(page);
	        if(pdfPage==null)return null;
	        
	        //get the width and height for the doc at the default zoom 
	        Rectangle rect = new Rectangle(0,0,
	                (int)pdfPage.getBBox().getWidth(),
	                (int)pdfPage.getBBox().getHeight());
	        
	        //generate the image
	        Image img = pdfPage.getImage(
	                rect.width, rect.height, //width & height
	                rect, // clip rect
	                null, // null for the ImageObserver
	                true, // fill background with white
	                true  // block until drawing is done
	                );
	        ByteArrayOutputStream baos=new ByteArrayOutputStream();	        
	        BufferedImage bImg =(BufferedImage)img;	        
	        ImageIO.write(bImg, imgType.toString(), baos);
	        
	        return baos.toByteArray(); 
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}		
		return null;
	}
/**建立PDF文档读取类
	 * 
	 * @param filePath PDF文件的路径
	 * @return null 或者PDFFile instance
	 */
	private PDFFile getPdfFile(String filePath)
	{
		try
		{
			File file = new File(filePath);
			RandomAccessFile raf = new RandomAccessFile(file, "r");
			FileChannel channel = raf.getChannel();
			ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
			PDFFile pdffile = new PDFFile(buf);
			return pdffile;
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
		return null;
	}

下面的代码从PDFRenderer 的example而来
public class PDFViewer {

    public static void setup() throws IOException {
    
        //set up the frame and panel
        JFrame frame = new JFrame("PDF Test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        PagePanel panel = new PagePanel();
        frame.add(panel);
        frame.pack();
        frame.setVisible(true);

        //load a pdf from a byte buffer
        String urlPath = "E:\\ArcGIS 应用\\ESRI技术白皮书\\ESRIData&Maps9.3.pdf";
        File file = new File(urlPath);
        RandomAccessFile raf = new RandomAccessFile(file, "r");
        FileChannel channel = raf.getChannel();
        ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY,
            0, channel.size());
        PDFFile pdffile = new PDFFile(buf);

        // show the first page
        PDFPage page = pdffile.getPage(0);
        panel.showPage(page);
    }

    public static void main(final String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                try {
                	PDFViewer.setup();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        });
    }}
  • 大小: 104.7 KB
分享到:
评论

相关推荐

    PDFRenderer pdf转图片 Demo

    PDFRenderer是一款用于将PDF文档转换为图像的工具,它提供了Java API,使得开发者可以方便地在应用程序中实现PDF到图片的转换功能。标题中的"Demo"表明这是一个演示或示例项目,展示了如何使用PDFRenderer库将PDF...

    pdfRenderer-0.9.0.jar稳定版

    PDFRenderer-0.9.0.jar 是一个Java开发的库,专门用于将PDF文档转换为图像格式,如JPG。这个稳定版工具是经过验证的,可以可靠地执行PDF到图片的转换,确保用户能够安全下载并使用。在处理PDF文档时,有时需要将它们...

    Java将PDF生成图片

    以下是一些关于“Java将PDF生成图片”的核心知识点: 1. **PDF处理库**:在Java中,我们可以使用第三方库如Apache PDFBox、iText和PDF Clown等来处理PDF文档。这些库提供了丰富的API,用于读取、解析和操作PDF文件...

    PDFRenderer-0.9.0.jar,iText-2.1.4.jar等转pdf jar包

    3. 如果涉及到图片或其他非文本元素,可能需要PDFRenderer来处理。 4. 最终生成的PDF文件会保留原始文件的大部分特性,包括字体、颜色、图像等。 在实际开发中,开发者会结合这些库,编写相应的Java代码实现文件...

    java:将html生成图片的所有方法比较

    - 优点:利用无头浏览器,如Chrome的`--headless`模式,可以在后台快速高效地生成图片,结果与实际浏览器一致,支持现代Web技术。 - 缺点:需要安装额外的浏览器,并且可能有版本更新的问题。内存和CPU使用率可能...

    轻松使用apache pdfbox将pdf文件生成图片.docx

    PDFRenderer renderer = new PDFRenderer(doc); for (int i = 0; i (); i++) { PDPage page = doc.getPage(i); BufferedImage image = renderer.renderImageWithDPI(i, 300); // 300 DPI for high quality ...

    安卓android上pdf转图片

    在安卓平台上,将PDF文件转换为图片是一种常见的需求,尤其对于那些希望在移动设备上轻松查看或分享PDF内容的用户。Android系统提供了多种方法来实现这个功能,这涉及到PDF处理库、图像处理技术和文件操作技术。下面...

    java 操作pdf 相样实现 如:pdf 转为图片

    使用PDFRenderer进行PDF转图片的基本流程如下: 1. **创建PDFRenderer实例**:首先,你需要创建一个PDFRenderer对象,并传入PDF文档的路径或输入流。 2. **渲染页面**:使用PDFRenderer的`renderImageWithDPI`方法...

    flying-saucer-pdf 生成pdf解决图片问题 解决中文问题

    在IT行业中,生成PDF...通过正确处理图片路径和使用支持中文的字体,我们可以生成包含丰富图片和多语言内容的专业PDF文档。在实际操作中,开发者需要结合具体的项目需求和环境进行适当的调整,以确保最佳的转换效果。

    web下使用itext renderer将html生成pdf

    4. **文字选择性**: iText Renderer可以生成带有可选文字的PDF,这意味着用户可以在PDF阅读器中选中并复制文本。 5. **生成PDF**: 最后,所有元素和图像被组合成一个完整的PDF文档,用户可以下载或在线预览。 **三...

    pdf转高清图片

    PDFRenderer pdfRenderer = new PDFRenderer(document); for (int page = 0; page (); ++page) { BufferedImage image = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB); ImageIO.write(image, ...

    pdfbox1.8.9实例图片转pdf和pdf转图片

    PDFRenderer renderer = new PDFRenderer(document); for (int i = 0; i (); i++) { BufferedImage image = renderer.renderImageWithDPI(i, 300, ImageType.RGB); ImageIO.write(image, "JPEG", new File("output...

    利用ITEXT、PDFBOX将PDF转为图片

    PDFRenderer pdfRenderer = new PDFRenderer(document); for (int page = 0; page (); ++page) { BufferedImage image = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB); // 保存或处理图片 } ...

    java显示PDF:将PDF文件转换成图片,然后显示出来

    接下来,我们可以使用PDFBox的`PDFRenderer`类来将PDF页面转换为图片。以下是一个简单的示例代码,展示如何实现这个功能: ```java import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox....

    java Pdf转换图片

    要进行PDF转图片,我们需要使用PDFBox中的`PDFRenderer`类。 1. **安装和引入PDFBox库** 在项目中添加PDFBox依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache....

    富文本pdf转图片image,图片image转ppt

    PDFRenderer pdfRenderer = new PDFRenderer(document); // 循环遍历每一页并转换为图片 for (int page = 0; page (); ++page) { BufferedImage image = pdfRenderer.renderImageWithDPI(page, 300); ImageIO....

    [Java]PDF转图片解决中文乱码.zip

    3. **创建图像渲染器**: 使用`PDFRenderer`类创建一个渲染器,这个渲染器将负责将PDF页面转换为图像。 4. **循环遍历页面**: 对PDF的每个页面,调用渲染器的`renderImage`方法,传入图像的索引和图像的格式,如JPEG...

    java生成pdf,再把pdf转成图片的demo.rar

    - **渲染与转换**:在PDFBox中,可以使用`PDDocument`对象加载PDF,然后通过`PDFRenderer`进行渲染,将其转换为图像。通常每个页面都会转换为一张图片。 - **图像格式选择**:转换后的图片可以保存为JPEG、PNG等...

    c#将PDF转为图片,高清无水印

    PDFRenderer renderer = new PDFRenderer(); // 打开PDF文件 renderer.Open(pdfFilePath); // 循环遍历PDF的每一页 for (int i = 0; i &lt; renderer.PageCount; i++) { // 创建一个Bitmap对象,设置其大小...

    C# pdf转图片的demo程序

    var pdfRenderer = new PDFRenderer(); // 加载PDF文件 int documentId = pdfRenderer.LoadDocument("path_to_your_pdf_file.pdf"); // 遍历PDF的每一页 for (int page = 1; page &lt;= pdfRenderer.GetPageCount...

Global site tag (gtag.js) - Google Analytics