설명서: PDFBoxPDF를 그림으로 변환
원래 구현은 서버 쪽: FlashPaper2 + java, 전방 플래시 컨트롤러가 swf 흐름 출력을 수신합니다.그러나 서버가 64비트로 업그레이드된 후 서버 측의 FlashPaper2는 더 이상 어울리지 않는다.
Boss는 문서 전시 기능을 실현하고 고객이 문서를 다운로드하는 것을 통제할 수 있도록 요구한다.
나는 플래시나 다른 플러그인을 사용하지 않아도 필요에 도달할 수 있을지 생각했다. 그러면 클라이언트에게 설치할 플러그인 같은 요구가 없을 것이다.
앞쪽에서 처리하지 않으면 뒷쪽에서 처리할 수밖에 없다!
대체로 다음과 같은 생각이다.
1.일반 텍스트 문서를 앞쪽으로 직접 출력
2.PDF PPT 이미지 등을 이미지로 변환하여 전면 표시
3.DOC 형식의 문서를 그림으로 변환할 수 있는지, 안 되면 PDF로 변환하고 그림을 돌려줍니다.
4.성능 문제 등 기능 개선
이 기능의 난점은 문서에서 그림을 돌려서 미리 연구하는 것이다.
PDF 그림 변환은 아파치의 PDFBox 구성 요소 1.8.3 버전을 사용합니다.
기능 데모 코드:
package com.zas.pdf.demo;
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;
/**
* @author zas
* PDF
*/
public class PDFConvertToImage {
static String filePath = "D:\\pdf\\java .pdf";
static String outputFilePath = "D:\\pdf\\java\\";
/**
* PDF
* @param inputFile PDF
* @param outputFolder
* @throws IOException
*/
public static void change(File inputFile, File outputFolder) throws IOException {
//TODO PDF
//TODO PDF
PDDocument doc = null;
try {
doc = PDDocument.load(inputFile);
List<PDPage> allPages = doc.getDocumentCatalog().getAllPages();
for (int i = 0; i < allPages.size(); i++) {
PDPage page = allPages.get(i);
page.convertToImage();
BufferedImage image = page.convertToImage();
ImageIO.write(image, "jpg", new File(outputFolder.getAbsolutePath() + File.separator + (i + 1) + ".jpg"));
}
} finally {
if (doc != null) {
doc.close();
}
}
}
public static void main(String[] args) {
File inputFile = new File(PDFConvertToImage.filePath);
File outputFolder = new File(PDFConvertToImage.outputFilePath);
if(!outputFolder.exists()){
outputFolder.mkdirs();
}
try {
PDFConvertToImage.change(inputFile, outputFolder);
} catch (IOException e) {
e.printStackTrace();
}
}
}
질문:
PDF 문서가 180M 크기인 경우 즉시 예외 처리
PDF 페이지 수가 500페이지 이상일 경우 처리 속도가 매우 느립니다.
후기에 이 두 문제를 처리하고 있다
이미... 이 있다
0명 메모 발표, 강타 ->>
여기<<- 토론 참여
ITEye 추천
4
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
React 및 Puppeteer: PDF 생성(프로젝트 설정)서버와 React를 템플릿 엔진으로 사용하여 PDF 문서를 생성하는 방법을 자세히 설명하는 실험입니다. 나는 과거에 @react-pdf/renderer를 사용했으며 이것은 내가 가진 몇 가지 문제를 해결하는 것을 목...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.