導航:首頁 > 文檔加密 > 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相關的資料

熱點內容
連漲啟動源碼 瀏覽:161
小奔運動app網路異常怎麼回事 瀏覽:449
php開啟壓縮 瀏覽:305
伺服器主機如何設置啟動 瀏覽:284
linux配置網路命令 瀏覽:774
一張照片怎麼製作視頻app 瀏覽:908
pythonweb和php 瀏覽:978
電腦伺服器地址ip地址 瀏覽:823
對矩陣壓縮是為了 瀏覽:912
setfacl命令 瀏覽:172
linux子系統中斷 瀏覽:342
linux查看進程ps 瀏覽:224
知識庫系統php 瀏覽:625
小波變換壓縮圖像python 瀏覽:153
阿里巴巴程序員怎麼月入百萬 瀏覽:173
如何使用國外伺服器 瀏覽:188
燃燈者pdf 瀏覽:470
編譯器用數學嗎 瀏覽:9
圖形化apk反編譯工具 瀏覽:48
考勤表加密怎麼辦 瀏覽:739