国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

將Notes應(yīng)用中的PDF附件轉(zhuǎn)為圖片

這篇具有很好參考價(jià)值的文章主要介紹了將Notes應(yīng)用中的PDF附件轉(zhuǎn)為圖片。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

大家好,才是真的好。

好久沒有寫專門開發(fā)方面的知識(shí),主要是因?yàn)榭吹娜颂?。嗯,?dāng)然,這是表面上的,實(shí)際上更重要的原因是,寫得很麻煩,而且看的人少。

開發(fā)要調(diào)試,代碼要反復(fù)測(cè)試,最后還要共享給大家,就說(shuō)難不難?不過,好處是,用功之后,可以多炫幾碗飯。

今天我們介紹的是將Notes應(yīng)用中的PDF附件轉(zhuǎn)為圖片文件。

有很多這樣的需求,例如現(xiàn)在外面消費(fèi),開的發(fā)票都是PDF格式,拿回到公司報(bào)銷,有可能需要轉(zhuǎn)換為圖片,并插入Word里面打印出來(lái);例如別人發(fā)個(gè)PDF文件過來(lái),讓你放在網(wǎng)站上顯示;例如別人沒有PDF查看器,又要看你發(fā)的PDF內(nèi)容……

不多說(shuō)了,讓我們開始正文吧。

該功能是采用兩個(gè)代理實(shí)現(xiàn),一個(gè)是LotusScript代理,主要將選中的Notes文件里面的PDF文件提取出來(lái);另一個(gè)是Java代理,將提取的PDF導(dǎo)出為圖片。

你也可以選擇別的方式,例如將Java寫成腳本庫(kù),然后通過LS2J方式調(diào)用,但考慮到大多數(shù)讀者開發(fā)知識(shí),采用了兩個(gè)代理。

首先來(lái)一段導(dǎo)出附件PDF的LotusScript,這個(gè)網(wǎng)上到處都有,可以隨便搜索找到,最簡(jiǎn)單的樣例如下圖:

Dim doc As NotesDocument
Dim rtitem As Variant
Dim fileCount As Integer
Const MAX = 100000
fileCount = 0    
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
  Forall o In rtitem.EmbeddedObjects
    If ( o.Type = EMBED_ATTACHMENT ) _
    And ( o.FileSize > MAX ) Then
      fileCount = fileCount + 1
      Call o.ExtractFile ( "c:\reports\newfile" & Cstr(fileCount) )
    End If
  End Forall
End If

有了這個(gè)基礎(chǔ),后面的就容易點(diǎn)。

PDF轉(zhuǎn)圖片要使用Java的pdfbox類庫(kù)包,這是專門為Java開發(fā)人員操作PDF文檔而準(zhǔn)備的純Java類庫(kù),下載地址是https://pdfbox.apache.org/download.html,如下圖:
將Notes應(yīng)用中的PDF附件轉(zhuǎn)為圖片,pdf,Notes,LotusScript代理,Java
最新版本為3.0,不過這個(gè)版本示例不多,資料也少,一般用2.0版本。

順便說(shuō)一下,雖然Java的開源類庫(kù)包很多,功能也很強(qiáng),但也有不少坑。

我先用的1.8.x版,可坑人了。好消息是,也坑過別人,就是會(huì)報(bào)字體引入錯(cuò)誤,如下:
將Notes應(yīng)用中的PDF附件轉(zhuǎn)為圖片,pdf,Notes,LotusScript代理,Java
特別搞笑的是,這場(chǎng)技術(shù)的討論,演變成了Notes/Domino產(chǎn)品是否還有人用的討論。

還是提問的哥們實(shí)誠(chéng)。說(shuō)自己已經(jīng)入行Notes/Domino產(chǎn)品19年了(如果算到2023年,也就是今年,應(yīng)該是23年了),他說(shuō)從他工作第一年開始,就有人跟他說(shuō)這個(gè)不行了,但他一直還在上面工作,估計(jì)還要工作20年才能等待退休。

好了,言歸正傳,開始我們的Java代理之旅,在你的Notes庫(kù)中,新建一個(gè)Java代理程序,叫什么名字不重要,重要的是代碼要選擇Java,如下圖:
將Notes應(yīng)用中的PDF附件轉(zhuǎn)為圖片,pdf,Notes,LotusScript代理,Java
然后導(dǎo)入pdfbox包,是三個(gè),如下圖:
將Notes應(yīng)用中的PDF附件轉(zhuǎn)為圖片,pdf,Notes,LotusScript代理,Java
將Notes應(yīng)用中的PDF附件轉(zhuǎn)為圖片,pdf,Notes,LotusScript代理,Java
然后是時(shí)候編寫一點(diǎn)點(diǎn)Java代碼了,代碼我都分享給大家:

import lotus.domino.*;

import java.awt.image.BufferedImage;

import java.io.File;

import javax.imageio.ImageIO;

import org.apache.pdfbox.pdmodel.PDDocument;

import org.apache.pdfbox.rendering.PDFRenderer;


public class JavaAgent extends AgentBase {



    public void NotesMain() {



      try {

          Session session = getSession();

          AgentContext agentContext = session.getAgentContext();      

          

          String pdffilename=session.getEnvironmentString("AgentPDFFileName");

          String destinationDir = "D:\\pngdatatest\\";



          File sourceFile = new File(pdffilename);

			File destinationFile = new File(destinationDir);



			if (!destinationFile.exists()) {

				destinationFile.mkdir();

				System.out.println("Folder Created -> " + destinationFile.getAbsolutePath());

			}



			if (sourceFile.exists()) {

				PDDocument document = PDDocument.load(sourceFile);

				PDFRenderer pdfRenderer = new PDFRenderer(document);

				String fileName = sourceFile.getName().replace(".pdf", "");



				for (int pageNumber = 0; pageNumber < document.getNumberOfPages(); ++pageNumber) {

					BufferedImage bim = pdfRenderer.renderImageWithDPI(pageNumber, 300);

					String destDir = destinationDir + fileName + "_" + pageNumber + ".png";

					ImageIO.write(bim, "png", new File(destDir));

				}



				document.close();

				System.out.println("Image saved at -> " + destinationFile.getAbsolutePath());

			} else {

				System.err.println(sourceFile.getName() + " File does not exist");



			 } 

      } catch(Exception e) {

          e.printStackTrace();

       }

   }

}

上述代碼有點(diǎn)糙,但是能用,希望你也優(yōu)化一下。畢竟寫開發(fā)功能相關(guān)內(nèi)容,還是很辛苦的。里面的代碼session.SETENVIRONMENTVAR(“AgentPDFFileName”, “c:\reports\newfile” & CStr(fileCount))一行,就是將PDF附件的名字,寫入到notes.ini,供Java代理讀取。你也可以采用別的方式,例如簡(jiǎn)要表文檔、命名文檔(v12版本中支持)等。

最后你也可以看看效果,打開一個(gè)Notes文檔,點(diǎn)擊操作菜單,選擇Lotusscript代理運(yùn)行,如下圖:
將Notes應(yīng)用中的PDF附件轉(zhuǎn)為圖片,pdf,Notes,LotusScript代理,Java
附件一個(gè)或多個(gè)都可以,要是可以請(qǐng)自己嘗試一下吧。

今天的分享就寫到這里吧。更多文章可關(guān)注微信公號(hào):協(xié)作者文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-550635.html

到了這里,關(guān)于將Notes應(yīng)用中的PDF附件轉(zhuǎn)為圖片的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用Python將PDF轉(zhuǎn)為圖片

    使用Python將PDF轉(zhuǎn)為圖片

    將PDF轉(zhuǎn)為圖片能方便我們將文檔內(nèi)容上傳至社交媒體平臺(tái)進(jìn)行分享。此外,轉(zhuǎn)換為圖片后,還可以對(duì)圖像進(jìn)行進(jìn)一步的裁剪、調(diào)整大小或添加標(biāo)記等操作。? 用Python將PDF文件轉(zhuǎn)JPG/ PNG圖片 可能是大家在一些項(xiàng)目中會(huì)遇到的需求,下面將詳細(xì)介紹如何使用第三方庫(kù)Spire.PDF for P

    2024年02月08日
    瀏覽(22)
  • 如何使用Python將PDF轉(zhuǎn)為圖片

    如何使用Python將PDF轉(zhuǎn)為圖片

    將PDF轉(zhuǎn)為圖片能方便我們將文檔內(nèi)容上傳至社交媒體平臺(tái)進(jìn)行分享。此外,轉(zhuǎn)換為圖片后,還可以對(duì)圖像進(jìn)行進(jìn)一步的裁剪、調(diào)整大小或添加標(biāo)記等操作。 用Python將PDF文件轉(zhuǎn)JPG/ PNG圖片 可能是大家在一些項(xiàng)目中會(huì)遇到的需求,下面將詳細(xì)介紹如何使用第三方庫(kù) Spire.PDF for Py

    2024年02月08日
    瀏覽(31)
  • 為什么使用fitz讀取pdf轉(zhuǎn)為圖片模糊

    出現(xiàn)這樣的原因有可能是因?yàn)椋谶M(jìn)行頁(yè)面讀取的時(shí)候未指定讀取的dpi是多少,使得默認(rèn)讀取去96dpi 所以在進(jìn)行讀取時(shí)使用 遇到苦難找文檔哦 牢記 : color{red}{牢記:} 牢記 : help()和查看官方文檔呀 相關(guān)的其他參數(shù)還有: matrix:指定應(yīng)用于頁(yè)面的轉(zhuǎn)換矩陣(fitz.Matrix 對(duì)象)。默

    2024年02月12日
    瀏覽(30)
  • 在iPhone設(shè)置一個(gè)快捷指令,一鍵將PDF轉(zhuǎn)為圖片

    在iPhone設(shè)置一個(gè)快捷指令,一鍵將PDF轉(zhuǎn)為圖片

    ? 經(jīng)常有人告訴我們?cè)赟afari可以截長(zhǎng)圖,但是沒明說(shuō)是PDF的。原本滿心歡喜,又被潑冷水。然而,在跟自己iPhone朝夕相處的時(shí)光里,我猛然發(fā)現(xiàn),在iPhone設(shè)置一個(gè)快捷指令就能將PDF轉(zhuǎn)為圖片格式,完全不用下載其他軟件,真的開心到飛起來(lái)! 具體操作:點(diǎn)擊PDF文件,打開之后

    2024年02月13日
    瀏覽(20)
  • vue3 el-upload 上傳附件及預(yù)覽 限制只能上傳一個(gè)圖片或者pdf格式的文件

    vue3 el-upload 上傳附件及預(yù)覽 限制只能上傳一個(gè)圖片或者pdf格式的文件

    效果如圖 直接看代碼吧 template部分 css部分 js部分

    2024年02月11日
    瀏覽(105)
  • element ui vue 附件預(yù)覽組件、可預(yù)覽圖片、excel 、pdf.word等文件(瀏覽器打開文件的方式)

    element ui vue 附件預(yù)覽組件、可預(yù)覽圖片、excel 、pdf.word等文件(瀏覽器打開文件的方式)

    目錄 1.組件源碼 ?2.html 代碼 3.組件源碼? 此組件就是一個(gè)單純的預(yù)覽圖片、瀏覽器打開文件的形式簡(jiǎn)單的組合了下而成的,word、excel是直接下載、pdf瀏覽器打開的形式,如果想本地打開直接預(yù)覽的話就直接不用看了。word、excel、pdf 的圖片是我放到服務(wù)器上的圖片地址。 1.組

    2024年02月11日
    瀏覽(164)
  • python提取圖片型pdf中的文字(提取pdf掃描件文字)

    python提取圖片型pdf中的文字(提取pdf掃描件文字)

    前言 文字型pdf提取,python的庫(kù)一大堆,但是圖片型pdf和pdf掃描件提取,還是有些難度的,我們需要用到OCR(光學(xué)字符識(shí)別)功能。 一、準(zhǔn)備 1、安裝OCR(光學(xué)字符識(shí)別)支持庫(kù) 首先要安裝 pytesseract 和 Tesserac OCR ,Tesseract OCR是一種廣泛使用的OCR工具,它可以用于從圖像中提取

    2024年03月23日
    瀏覽(29)
  • java通過minio下載pdf附件

    2024年04月25日
    瀏覽(23)
  • 通過Python的fitz庫(kù)提取pdf中的圖片

    通過Python的fitz庫(kù)提取pdf中的圖片

    大家好,我是空空star,本篇給大家分享一下 《通過Python的fitz庫(kù)提取pdf中的圖片》 。 Fitz庫(kù)是一個(gè)Python圖像處理庫(kù),主要用于打開、編輯和保存PDF、TIFF和JPEG格式的圖像。它可以幫助用戶讀取和寫入PDF文件,提取PDF頁(yè)面以及在頁(yè)面上進(jìn)行標(biāo)記和注釋。此外,F(xiàn)itz庫(kù)還提供了一些

    2024年02月07日
    瀏覽(26)
  • 零代碼編程:用ChatGPT批量識(shí)別圖片PDF中的文字

    零代碼編程:用ChatGPT批量識(shí)別圖片PDF中的文字

    有些PDF頁(yè)面是圖片格式,要怎么批量把圖片中的文字識(shí)別出來(lái)?借助ChatGPT可以輕松完成這個(gè)任務(wù)。 首先要安裝一些相關(guān)的軟件和Python庫(kù)。 安裝tesseract-ocr(OCR)軟件,最新版的是tesseract-ocr-w64-setup-v5.3.0.20221214.exe ,下載地址是https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-se

    2024年02月15日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包