我没有将一段文字显示为pdf下载链接,而是想显示pdf的迷你屏幕截图作为下载链接。
我该怎么做(从哪里开始)? 我的linkedin个人资料的屏幕截图示例:
http://s.wordpress.com/mshots/v1/http%3A%2F%2Fwww.linkedin.com%2Fin%2Fedbras?w=115
然后可以将其包括在前端的链接的背景/图像中。 这是怎么做到的? 这是来自网页,但我们的想法是对后端生成的pdf执行相同的操作。 我正在通过Javascript进行后端调用,我有一个Java后端,我没有使用wordpress。
答案 0 :(得分:5)
使用Apache PDFBox并上传PDF文件后,使用此方法从路径加载上传的文档,获取第一页,将其转换为图像并将其保存到您选择的路径中。将此路径保存在数据库记录中。
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
public class PDFUtil {
public static void saveFirstPageThumbnail() throws IOException {
PDDocument document = PDDocument.load("C:\\testbook.pdf");
List<PDPage> pages = document.getDocumentCatalog().getAllPages();
PDPage page = pages.get(0); //first one
BufferedImage bufferedImage = page.convertToImage();
File outputFile = new File( "C:\\image.jpg");
ImageIO.write(bufferedImage, "jpg", outputFile);
}
}
稍后当您需要打印链接时,只需在回调中返回您创建的图片的路径,并在普通的html中形成您的链接:
<a href="path/to/document.pdf"><img src="path/to/image.jpg" /></a>
如果您正在使用maven
,这里是库依赖项<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>1.8.2</version>
</dependency>
答案 1 :(得分:0)
如果我理解正确的问题,如果您有PDF和截图图片,那么您只需编写
<a href="yourPDFlink.pdf"><img src="http://s.wordpress.com/mshots/v1/http%3A%2F%2Fwww.linkedin.com%2Fin%2Fedbras?w=115" alt="Name of your PDF"/></a>
答案 2 :(得分:0)
在ABCPdf .NET下你只需写:
Doc doc = new Doc();
doc.Read(@"c:\mydoc.pdf");
doc.Rendering.Save(@"c:\mydoc.jpg");
非常简单呃?
请注意,内部PDF渲染非常复杂,许多解决方案都跳过了透明组和混合等重要功能。
因此,在选择渲染解决方案时,请考虑文档的来源。
如果他们来自统一来源,您可能不需要过多担心出错的事情。如果它适用于一个,它将为所有人工作。
但是,如果您的文档来自真实世界,您需要确保您的渲染解决方案功能齐全,以便它能够处理所有文档而不仅仅是普通文档。
我的回复可能包含基于ABCpdf .NET的概念。这就是我的工作 - 这就是我所知道的。 : - )