2013-11-09 5 views
0

Вместо того, чтобы показывать фрагмент текста в виде ссылки для загрузки pdf, я хочу показать мини-снимок pdf в виде ссылки для скачивания.Показать скриншот как ссылку для загрузки pdf

Как это сделать (с чего начать)? Пример экрана моего профиля к LinkedIn:

http://s.wordpress.com/mshots/v1/http%3A%2F%2Fwww.linkedin.com%2Fin%2Fedbras?w=115 

Это может быть затем включен в качестве фона/изображения звена в переднем конце. Как это делается? Это с веб-страницы, но идея заключается в том, чтобы сделать то же самое для созданного pdf-файла в бэкэнд. Я делаю обратные вызовы через Javascript, и у меня есть Java-сервер, я не использую wordpress.

ответ

4

Apache PDFBox Использование и после того, как файл PDF загружен этот метод использования, который загружает загруженный документ с пути, занимает первую страницу, преобразует ее в изображение и сохраняет в путь по вашему выбору. Сохраните этот путь в записи DB.

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> 
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> 
+0

Я не использую Wordpress и хочу знать, как создать скриншот в моем бэкэнд. – edbras

+0

Ссылка была взята прямо из вашего примера. Это может быть любая ссылка. Wordpress или нет. –

+0

И как эта «любая ссылка» создает запрошенное изображение? Это вопрос .... – edbras

0

Под ABCpdf .NET вы бы просто написать:

Doc doc = new Doc(); 
doc.Read(@"c:\mydoc.pdf"); 
doc.Rendering.Save(@"c:\mydoc.jpg"); 

Довольно простой а?

Обратите внимание, что внутренняя обработка PDF-документов довольно сложна, и многие решения пропускают важные функции, такие как группы прозрачности и сочетания.

Поэтому, когда вы выбираете решение для рендеринга, подумайте, откуда берутся ваши документы.

Если они исходят из единого источника, вам, вероятно, не нужно слишком беспокоиться о том, что происходит не так. Если он работает на один, он будет probaby работать для всех.

Однако, если ваши документы взяты из источника в реальном мире, вам необходимо убедиться, что ваше рендерингное решение полнофункционально, чтобы оно могло справляться со всеми документами, а не только с обычными.

В моих ответах могут содержаться понятия, основанные на ABCpdf .NET. Это то, над чем я работаю - это то, что я знаю. :-)

Смежные вопросы