导航:首页 > 文档加密 > pdf转换base64

pdf转换base64

发布时间:2023-01-13 17:35:44

㈠ 如何将pdf转换生成的response.outputStream为Base64编码

例子说明一切
先写单元测试吧:单元测试的代码如下:
package test.com.cs;

import com.cs.Base64Convert;
import junit.framework.TestCase;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.logging.Logger;

public class TestBase64Convert extends TestCase {
Base64Convert baseCov = null;

public TestBase64Convert(String s) {
super(s);
}

protected void setUp() throws Exception {
baseCov = new Base64Convert();
}

protected void tearDown() throws Exception {
super.tearDown();
}

public void testIoToBase64() {
try {
String strBase64 = baseCov.ioToBase64(); //将 io 转换为 base64编码
System.out.println(">>> "+strBase64);
baseCov.base64ToIo(strBase64); //将 base64编码转换为 io 文件流,生成一幅新图片
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

㈡ 浏览器pdf转base64不同浏览器

题主是否想询问“浏览器pdf转base64不同浏览器步骤”?
1、首先进入我速PDF转换器。
2、其次下载安装完成后,打开软件,选择PDF转base64解析为网页。
3、最后点击或者拖拽你想要转换的批量PDF文件或者点击界面下方添加文件夹,输出目录可以选择原文件目录或者自定义目录,最后点击开始转换即可完成转换。

㈢ vue.base64转pdf加载太慢

vue.base64转pdf加载太慢是因为pdf加载需要一定的时间,可以通过插件加载快一点,首先先下载一个插件即可。

㈣ 显示base64编码的pdf

将base64格式的pdf在新标签页打开:

var objstr = '';

objstr += ('<object width="100%" height="100%" data="data:application/pdf;base64,');

objstr += (base64string);

objstr += ('" type="application/pdf">');

objstr += ('<embed src="data:application/pdf;base64,');

objstr += (base64string);

objstr += ('" type="application/pdf" />');

objstr += ('</object>');

var win = window.open("#", "_blank");

var title = "标题";

win.document.write('<html><title>'+ title +'</title><body style="margin: 0px;">');

win.document.write(objstr);

win.document.write('</body></html>');

layer = jQuery(win.document);

㈤ 解决react项目中PDF的显示与打印问题

最近项目中有这样一个需求:

拿到这个需求,真时一头雾水。因为没有做过类似需求,不知从何下手。在查阅资料的过程中,发现有很多jQuery插件可以实现显示pdf, 但是我们是react单页面应用项目,看来这些插件并不适用,只能另寻其它方法。

后来在 npmjs.com 上找到了 react-pdf-js 组件, 心想显示pdf有望。就迫不及待将 react-pdf-js 依赖 通过 cnpm install react-pdf-js --save-dev 命令安装到项目中,通过 import PDF from 'react-pdf-js' 引入到项目里。将<PDF file={pdfUrl} onDocumentComplete={this.onDocumentComplete} onPageComplete={this.state.page} />插入render里。

在调试过程中发现静态pdf文件可以显示,在线pdf文件不能显示。通过控制的报错信息了解道,react-pdf-js组件要求file文件地址是url或者base64格式, 既然url行不通,就只能往base64上靠了。

一开始我直接将将pdf的在线地址url转换为base64,但是不能显示。后来想明白了,只把url转换成base64格式是没有用的,需要把pdf的文件内容转换成base64才行。接下来就顺理成章,通过从后台获取到的pdf的url地址,再次请求获取到pdf文件。

在做这部分的遇到一个小问题:能请求成功,就是获取不到pdf文件,在这纠结了很久,也不知道该如何解决,把问题描述给我们公司的架构师,我们分析这是跨域问题造成的,他给nginx服务器的配置解决了跨域问题。

这里需要注意请求pdf文件的时候要设置 responseType 为blob, 为什么使用blob类型下面解释,到这我就拿到了pdf文件,将其转化为base64格式。

base64格式的转换,需要时blob格式,将转化为base64格式的pdf,在file={file}, 将其在浏览器上显示出来。实际上最终是以canvas来呈现的PDF。

pdf显示算是告一段落,接下来就是打印了。

在浏览器上,打印分整页打印和指定部分打印。项目需要打印制定部分内容打印,实现打印的方法多种多样,我使用了传统的css控制。通过 @media print 将打印时不需要打印的部分隐藏掉,那么剩下的就是要打印的部分了。

这里有个调试的小技巧:因为只有当调用了浏览器的打印才会调用@media print 里的样式,所以可以将这部分样式放在外面,当将不需要打印的部分都隐藏掉了,再将外部的这些样式去掉,给@media print即可。

调用浏览器的打印使用的 window.print() , 虽然不能兼容所有浏览器,但是常见的高级浏览器都可以兼容,满足了我们的项目需求,这里我就没有继续深挖。

pdf的显示与打印,前前后后遇到了不少问题,以上流水做个总结。

㈥ 在C#环境下,如何把扫描的PDF文件转化成base64编码,请指导,并说明代码中PDF文件存在的路径,谢谢指导。

privatevoidbutton2_Click(objectsender,EventArgse)
{
openFileDialog1.Filter=@"PDF文件(*.pdf)|*.pdf";
if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
//获取选定的PDF文件
varfName=openFileDialog1.FileName;
byte[]b=File.ReadAllBytes(fName);
//byte[]转string
stringstr=Convert.ToBase64String(b);
}
}

上面实现的是点击按钮,选择一个PDF文件,将文件转为Base64. (Base64其实就是string)。

File类 是在System.IO 命名空间下。

想将Base64再转成PDF的话,用下面就可以实现。

//string转byte[]
byte[]imageBytes=Convert.FromBase64String(str);
File.WriteAllBytes(@"c: est.Pdf",imageBytes);

㈦ 如何将PDF转换生成的response.outputStream为Base64编码

用Java内嵌iText生成PDF文档需要5个步骤: ①建立com.lowagie.text.Document对象的实例。 Document document = new Document(); ②建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。 PDFWriter.getInstance(...

㈧ pdf转base64

public String getPDFStr(String pdfPath){

        byte[] bytes=null;

        InputStream in=null;

        try{

                in=new FileInputStream(pdfPath);

                bytes=new byte[in.available()];

                in.read(bytes);

                in.close();

        }catch (IOException e){

                e.printStackTrace();

        }

        return Base64.encodeBase64String(bytes);

}

㈨ JAVA怎么将PDF的base64转换成jpg的base64

package com.aiait.base.util;


import org.apache.pdfbox.pdmodel.PDDocument;

import org.apache.pdfbox.rendering.ImageType;

import org.apache.pdfbox.rendering.PDFRenderer;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;


import com.aiait.base.service.impl.base.SearchServiceImpl;


import org.apache.pdfbox.*;


import java.awt.image.BufferedImage;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.net.URL;

import java.text.DecimalFormat;

import java.util.Date;


import javax.imageio.ImageIO;


import org.apache.commons.lang3.StringUtils;


import sun.misc.BASE64Decoder;

import sun.misc.BASE64Encoder;


public class PDFUtil {

// logger

private static final Logger lOGGER = LoggerFactory.getLogger(PDFUtil.class);


public static void main(String[] args) {

// pdfTojpg("C://Test//eClaimPDF//1//Others.pdf","C://Test//eClaimPDF//WrittenConfirmation.jpg");

Date timeDiffE = null;

Date timeDiffL = null;

timeDiffE = new Date();

base64PdfToJpg(pdfBase64);

timeDiffL = new Date();

lOGGER.info("base64PdfToJpg use time: " + getDiffTime(timeDiffL, timeDiffE) + "s");

}

private static String base64PdfToJpg(String base64Pdf) {

String jpg_base64 = null;

int pdfdpi = 400;

BASE64Decoder decoder = new BASE64Decoder();

byte[] pdf_bytes = null;

try {

pdf_bytes = decoder.decodeBuffer(base64Pdf);

} catch (IOException e1) {

e1.printStackTrace();

}


try (final PDDocument document = PDDocument.load(pdf_bytes)) {

int size = document.getNumberOfPages();

/*图像合并使用参数*/

// 定义宽度

int width = 0;

// 保存一张图片中的RGB数据

int[] singleImgRGB;

// 定义高度,后面用于叠加

int shiftHeight = 0;

//保存每张图片的像素值

BufferedImage imageResult = null;

// 利用PdfBox生成图像

PDDocument pdDocument = document;

PDFRenderer renderer = new PDFRenderer(pdDocument);

/*根据总页数, 按照50页生成一张长图片的逻辑, 进行拆分*/

// 每50页转成1张图片

int pageLength = size; //有多少转多少

// 总计循环的次数

int totalCount = pdDocument.getNumberOfPages() / pageLength + 1;

for (int m = 0; m < totalCount; m++) {

for (int i = 0; i < pageLength; i++) {

int pageIndex = i + (m * pageLength);

if (pageIndex == pdDocument.getNumberOfPages()) {

System.out.println("m = " + m);

break;

}

// 96为图片的dpi,dpi越大,则图片越清晰,图片越大,转换耗费的时间也越多

BufferedImage image = renderer.renderImageWithDPI(pageIndex, 106, ImageType.RGB);

int imageHeight = image.getHeight();

int imageWidth = image.getWidth();

if (i == 0) {

//计算高度和偏移量

//使用第一张图片宽度;

width = imageWidth;

// 保存每页图片的像素值

// 加个判断:如果m次循环后所剩的图片总数小于pageLength,则图片高度按剩余的张数绘制,否则会出现长图片下面全是黑色的情况

if ((pdDocument.getNumberOfPages() - m * pageLength) < pageLength) {

imageResult = new BufferedImage(width, imageHeight * (pdDocument.getNumberOfPages() - m * pageLength), BufferedImage.TYPE_INT_RGB);

} else {

imageResult = new BufferedImage(width, imageHeight * pageLength, BufferedImage.TYPE_INT_RGB);

}

} else {

// 将高度不断累加

shiftHeight += imageHeight;

}

singleImgRGB = image.getRGB(0, 0, width, imageHeight, null, 0, width);

imageResult.setRGB(0, shiftHeight, width, imageHeight, singleImgRGB, 0, width);

}

// System.out.println("m = " + m);

File outFile = new File("C://Test//eClaimPDF//WrittenConfirmation.png");

System.out.println(outFile.getName());

// 写图片

ImageIO.write(imageResult, "png", outFile);

// 这个很重要,下面会有说明

shiftHeight = 0;

}

pdDocument.close();


ByteArrayOutputStream baos = new ByteArrayOutputStream();//io流

ImageIO.write(imageResult, "png", baos);//写入流中

byte[] jpg_Bytes = baos.toByteArray();//转换成字节

BASE64Encoder encoder = new BASE64Encoder();

jpg_base64 = encoder.encodeBuffer(jpg_Bytes).trim();//转换成base64串

jpg_base64 = jpg_base64.replaceAll(" ", "").replaceAll(" ", "");//删除

// System.out.println("值为:"+"data:image/jpg;base64,"+jpg_base64);

} catch (Exception e) {

e.printStackTrace();

}

return "data:image/jpg;base64,"+jpg_base64;

}

// private static String base64PdfToJpg(String base64Pdf) {

// String jpg_base64 = null;

// int pdfdpi = 400;

//

// BASE64Decoder decoder = new BASE64Decoder();

// byte[] pdf_bytes = null;

// try {

// pdf_bytes = decoder.decodeBuffer(base64Pdf);

// } catch (IOException e1) {

// e1.printStackTrace();

// }

//

// try (final PDDocument document = PDDocument.load(pdf_bytes)) {

// int size = document.getNumberOfPages();

// for (int i = 0; i < size; i++) {

// BufferedImage image = new PDFRenderer(document).renderImageWithDPI(i, pdfdpi, ImageType.RGB);

// BufferedImage image = new PDFRenderer(document).

//

// ByteArrayOutputStream baos = new ByteArrayOutputStream();//io流

// ImageIO.write(image, "jpg", baos);//写入流中

// byte[] jpg_Bytes = baos.toByteArray();//转换成字节

// BASE64Encoder encoder = new BASE64Encoder();

// jpg_base64 = encoder.encodeBuffer(jpg_Bytes).trim();//转换成base64串

// jpg_base64 = jpg_base64.replaceAll(" ", "").replaceAll(" ", "");//删除

//

// System.out.println("值为:"+"data:image/jpg;base64,"+jpg_base64);

//

// }

// } catch (Exception e) {

// e.printStackTrace();

// }

// return "data:image/jpg;base64,"+jpg_base64;

// }


private static void pdfTojpg(String pdfFilePath, String jpgFilePath) {

File pdfFile = new File(pdfFilePath);

int idx = jpgFilePath.lastIndexOf('.');

String jpgprefix = StringUtils.substring(jpgFilePath, 0, idx);

int pdfdpi = 400;

BASE64Decoder decoder = new BASE64Decoder();

byte[] bytes = null;

try {

bytes = decoder.decodeBuffer(pdfBase64);

} catch (IOException e1) {

e1.printStackTrace();

}


// try (final PDDocument document = PDDocument.load(pdfFile, "")) {

try (final PDDocument document = PDDocument.load(bytes)) {

int size = document.getNumberOfPages();

for (int i = 0; i < size; i++) {

BufferedImage image = new PDFRenderer(document).renderImageWithDPI(i, pdfdpi, ImageType.RGB);

/*

* ByteArrayOutputStream baos = new ByteArrayOutputStream();//io流

* ImageIO.write(image, "jpg", baos);//写入流中 byte[] imgBytes =

* baos.toByteArray();//转换成字节 BASE64Encoder encoder = new BASE64Encoder();

* String png_base64 = encoder.encodeBuffer(imgBytes).trim();//转换成base64串

* png_base64 = png_base64.replaceAll(" ", "").replaceAll(" ", "");//删除

*

* System.out.println("值为:"+"data:image/jpg;base64,"+png_base64);

*/

File jpgFile = new File(jpgprefix + "_" + i + ".jpg");

ImageIO.write(image, "jpg", jpgFile);

}

} catch (Exception e) {

e.printStackTrace();

}


}

private static Double getDiffTime(Date lateTime, Date earlyTime) {

DecimalFormat df=new DecimalFormat("0.00");//设置保留位数

return Double.valueOf(df.format((double)(lateTime.getTime() - earlyTime.getTime()) / 1000));

}


public static String pdfBase64 = "***" //from web网页链接, upload a PDF to get the base64 string (Base64 - Online Base64 decoder and encoder)

}

阅读全文

与pdf转换base64相关的资料

热点内容
电脑服务器地址ip地址 浏览:823
对矩阵压缩是为了 浏览:910
setfacl命令 浏览:172
linux子系统中断 浏览:342
linux查看进程ps 浏览:224
知识库系统php 浏览:623
小波变换压缩图像python 浏览:151
阿里巴巴程序员怎么月入百万 浏览:173
如何使用国外服务器 浏览:188
燃灯者pdf 浏览:468
编译器用数学吗 浏览:7
图形化apk反编译工具 浏览:48
考勤表加密怎么办 浏览:735
arj压缩与解压批处理怎么写 浏览:658
php和大数据哪个好 浏览:930
未来最值得投资的加密货币 浏览:526
ascii码是编译的时候用吗 浏览:782
压缩机感应包可以通用吗 浏览:413
方舟服务器怎么发布到搜索列表 浏览:271
xml防反编译 浏览:242