本文整理汇总了Java中org.jpedal.PdfDecoder.setExtractionMode方法的典型用法代码示例。如果您正苦于以下问题:Java PdfDecoder.setExtractionMode方法的具体用法?Java PdfDecoder.setExtractionMode怎么用?Java PdfDecoder.setExtractionMode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.jpedal.PdfDecoder
的用法示例。
在下文中一共展示了PdfDecoder.setExtractionMode方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getPageImages
import org.jpedal.PdfDecoder; //导入方法依赖的package包/类
@Override
public List<BufferedImage> getPageImages(ExamPaper examPaper) throws PdfException {
PdfDecoder pdf = new PdfDecoder(false);
pdf.setExtractionMode(PdfDecoder.FINALIMAGES);
InputStream is = new ByteArrayInputStream(examPaper.getPdf());
pdf.openPdfFileFromInputStream(is, true);
ArrayList<BufferedImage> pageImages = new ArrayList<>();
for (int i = 1; i <= pdf.getPageCount(); i++) {
pageImages.add(pdf.getPageAsImage(i));
}
return pageImages;
}
示例2: createImagesForPdf
import org.jpedal.PdfDecoder; //导入方法依赖的package包/类
public static int createImagesForPdf(String docDir, String fileName)
{
File documentCacheDir = getDocumentCacheDir(docDir);
String pdffileName = fileName;
if (!fileName.endsWith(".pdf")) pdffileName = new StringBuilder().append(fileName).append(".pdf").toString();
File file = new File(docDir, pdffileName);
PdfDecoder decode_pdf = new PdfDecoder(true);
File ofile = null;
int numberOfPages = 0;
try
{
FontMappings.setFontReplacements();
decode_pdf.useHiResScreenDisplay(true);
decode_pdf.setExtractionMode(0, 96, 1.333333F);
FileInputStream is = new FileInputStream(file);
decode_pdf.openPdfFileFromInputStream(is, false);
RandomAccessFile raf = new RandomAccessFile(file, "r");
FileChannel channel = raf.getChannel();
ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0L, channel.size());
PDFFile pdffile = new PDFFile(buf);
numberOfPages = pdffile.getNumPages();
for (int p = 1; p <= numberOfPages; p++) {
BufferedImage image_to_save = decode_pdf.getPageAsImage(p);
String imageFileName = null;
if (fileName.endsWith(".pdf")) imageFileName = fileName.split(".pdf")[0]; else {
imageFileName = fileName;
}
File outfile = new File(documentCacheDir, new StringBuilder().append(imageFileName).append("_").append(p).append(".png").toString());
if (!outfile.exists()) {
decode_pdf.getObjectStore().saveStoredImage(new StringBuilder().append(documentCacheDir.getCanonicalPath()).append("/").append(imageFileName).append("_").append(p).append(".png").toString(), image_to_save, true, false, "png");
}
decode_pdf.flushObjectValues(true);
decode_pdf.closePdfFile();
}
}
catch (Exception e)
{
logger.error(new StringBuilder().append("Error decoding pdf file ").append(fileName).toString());
MiscUtils.getLogger().error("Error", e);
decode_pdf.closePdfFile();
}
return numberOfPages;
}
示例3: generateImages
import org.jpedal.PdfDecoder; //导入方法依赖的package包/类
/**
* Generates one JPEG image per page of the input PDFs. The images are named
* according to the leaf filename and page number of the input. E.g. for
* page 2 of "/tmp/Heidinger_1997_767_279.pdf", the output file would be
* "/path/to/output/Heidinger_1997_767_279_2.jpg".
*
* @return A list of all generated files.
*/
public List<File> generateImages(File pdf, File outputDir)
throws IOException, PdfException {
int startPage = 1;
int endPage;
double h = -0.01;
double w = -0.01;
List<File> generatedFiles = new ArrayList<File>();
String pdfName = pdf.getName();
String pdfStem = pdfName.substring(0, pdfName.lastIndexOf("."));
PdfDecoder decoder = new PdfDecoder(true);
// decoder.setExtractionMode(0, DPI, DPI/72);
decoder.setExtractionMode(PdfDecoder.TEXT + PdfDecoder.RAWIMAGES
+ PdfDecoder.FINALIMAGES, DPI, DPI / 72);
decoder.openPdfFile(pdf.getPath());
endPage = decoder.getPageCount();
for (int pageNumber = startPage; pageNumber <= endPage; pageNumber++) {
String outputImageName = pdfStem + "_" + pageNumber + ".png";
File outputImageFile = new File( outputImageName );
generatedFiles.add(outputImageFile);
PdfFileInformation currentFileInformation = decoder
.getFileInformationData();
String values[] = currentFileInformation.getFieldValues();
String fields[] = PdfFileInformation.getFieldNames();
for (int i = 0; i < fields.length; i++) {
if (fields[i].equals("Creator")) {
for (int j = 0; j < ocr.length; j++) {
if (values[i].equals(ocr[j])) {
decoder.setRenderMode(PdfDecoder.RENDERIMAGES);
//decoder.setsetEnableLegacyJPEGConversion(true);
}
}
}
}
BufferedImage image_to_save = decoder
.getPageAsImage(pageNumber);
h = image_to_save.getHeight();
w = image_to_save.getWidth();
ImageIO.write(image_to_save, "png", outputImageFile);
}
return generatedFiles;
}
示例4: createCacheVersion2
import org.jpedal.PdfDecoder; //导入方法依赖的package包/类
public File createCacheVersion2(Document d, Integer pageNum) {
File documentCacheDir = getDocumentCacheDir(oscar.OscarProperties.getInstance().getProperty("DOCUMENT_DIR"));
File file = new File(EDocUtil.getDocumentPath(d.getDocfilename()));
PdfDecoder decode_pdf = new PdfDecoder(true);
File ofile = null;
try {
FontMappings.setFontReplacements();
decode_pdf.useHiResScreenDisplay(true);
decode_pdf.setExtractionMode(0, 96, 96/72f);
FileInputStream is = new FileInputStream(file);
decode_pdf.openPdfFileFromInputStream(is, false);
BufferedImage image_to_save = decode_pdf.getPageAsImage(pageNum);
decode_pdf.getObjectStore().saveStoredImage( documentCacheDir.getCanonicalPath() + "/" + d.getDocfilename() + "_" + pageNum + ".png", image_to_save, true, false, "png");
decode_pdf.flushObjectValues(true);
decode_pdf.closePdfFile();
ofile = new File(documentCacheDir, d.getDocfilename() + "_" + pageNum + ".png");
}catch(Exception e) {
log.error("Error decoding pdf file " + d.getDocfilename());
decode_pdf.closePdfFile();
}
return ofile;
}
示例5: createIncomingCacheVersion
import org.jpedal.PdfDecoder; //导入方法依赖的package包/类
public File createIncomingCacheVersion(String queueId, String pdfDir, String pdfName, Integer pageNum) throws Exception {
String incomingDocPath = IncomingDocUtil.getIncomingDocumentFilePath(queueId, pdfDir);
File documentDir = new File(incomingDocPath);
File documentCacheDir = getDocumentCacheDir(incomingDocPath);
File file = new File(documentDir, pdfName);
PdfDecoder decode_pdf = new PdfDecoder(true);
File ofile = null;
FileInputStream is = null;
try {
FontMappings.setFontReplacements();
decode_pdf.useHiResScreenDisplay(true);
decode_pdf.setExtractionMode(0, 96, 96 / 72f);
is = new FileInputStream(file);
decode_pdf.openPdfFileFromInputStream(is, false);
BufferedImage image_to_save = decode_pdf.getPageAsImage(pageNum);
decode_pdf.getObjectStore().saveStoredImage(documentCacheDir.getCanonicalPath() + "/" + pdfName + "_" + pageNum + ".png", image_to_save, true, false, "png");
decode_pdf.flushObjectValues(true);
} catch (Exception e) {
log.error("Error decoding pdf file " + pdfDir + pdfName);
} finally {
if (decode_pdf != null) {
decode_pdf.closePdfFile();
}
if (is!=null) {
is.close();
}
}
ofile = new File(documentCacheDir, pdfName + "_" + pageNum + ".png");
return ofile;
}