最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解如何使用Python在PDF文檔中創(chuàng)建動(dòng)作

 更新時(shí)間:2024年09月02日 09:43:33   作者:Eiceblue  
PDF格式因其跨平臺(tái)兼容性和豐富的功能集而成為許多行業(yè)中的首選文件格式,其中,PDF中的動(dòng)作(Action) 功能尤為突出,本文將介紹如何使用Python在PDF文檔中創(chuàng)建動(dòng)作,需要的朋友可以參考下

引言

PDF格式因其跨平臺(tái)兼容性和豐富的功能集而成為許多行業(yè)中的首選文件格式。其中,PDF中的動(dòng)作(Action) 功能尤為突出,它允許開發(fā)者嵌入交互式元素,如鏈接、按鈕或是更復(fù)雜的腳本,從而顯著提升文檔的互動(dòng)性和功P能性。通過使用Python這樣的強(qiáng)大編程語言來創(chuàng)建這些動(dòng)作,不僅可以自動(dòng)化文檔處理流程,還能實(shí)現(xiàn)各種復(fù)雜的文檔操作,極大地豐富了PDF文檔的應(yīng)用場(chǎng)景,使得PDF文檔不再僅僅是靜態(tài)的內(nèi)容展示,而是能夠更好地服務(wù)于用戶需求和業(yè)務(wù)流程。本文將介紹如何使用Python在PDF文檔中創(chuàng)建動(dòng)作。

本文所使用的方法需要用到Spire.PDF for Python,Python:pip install Spire.PDF。

用Python在PDF中創(chuàng)建導(dǎo)航跳轉(zhuǎn)動(dòng)作

庫中的PdfGoToAction類代表導(dǎo)航跳轉(zhuǎn)動(dòng)作,可以跳轉(zhuǎn)到文檔內(nèi)指定頁面的指定位置,同時(shí)可自定義跳轉(zhuǎn)后的頁面縮放。一下是利用此類在PDF文檔中創(chuàng)建導(dǎo)航跳轉(zhuǎn)動(dòng)作的操作步驟:

  1. 導(dǎo)入所需模塊。
  2. 創(chuàng)建PdfDocument類,并使用PdfDocument.LoadFromFile()方法載入PDF文件。
  3. 使用PdfDocument.Pages.get_Item()方法獲取一個(gè)頁面。
  4. 創(chuàng)建一個(gè)PdfDestination實(shí)例來設(shè)置跳轉(zhuǎn)目標(biāo)位置以及跳轉(zhuǎn)后的頁面縮放。
  5. PdfDestination實(shí)例創(chuàng)建一個(gè)PdfGoToAction實(shí)例。
  6. PdfGoToAction實(shí)例在指定位置創(chuàng)建一個(gè)PdfActionAnnotation實(shí)例,并使用該類下的方法設(shè)置注釋的顏色。
  7. 使用PdfPageBase.Annotations.Add()方法將注釋添加到頁面上。
  8. 使用PdfPageBase.Canvas.DrawString()方法在注釋位置繪制導(dǎo)航提示文字。
  9. 使用PdfDocument.SaveToFile()方法保存文檔。
  10. 釋放資源。

代碼示例

from spire.pdf import *

# 創(chuàng)建PdfDocument類的一個(gè)實(shí)例并加載一個(gè)PDF文檔
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")

# 獲取第二頁
page = pdf.Pages.get_Item(1)

# 創(chuàng)建一個(gè)PdfDestination實(shí)例并設(shè)置其屬性
destination = PdfDestination(pdf.Pages.get_Item(0))
destination.Location = PointF(0.0, 0.0)
destination.Mode = PdfDestinationMode.Location
destination.Zoom = 0.8

# 創(chuàng)建一個(gè)PdfGoToAction實(shí)例
action = PdfGoToAction(destination)

# 創(chuàng)建一個(gè)PdfActionAnnotation實(shí)例
rect = RectangleF.FromLTRB(70, pdf.PageSettings.Size.Height - 120, 140, pdf.PageSettings.Size.Height - 100)
annotation = PdfActionAnnotation(rect, action)
annotation.Color = PdfRGBColor(Color.get_Red())

# 將注釋添加到第二頁
page.Annotations.Add(annotation)

# 繪制按鈕的文字
font = PdfTrueTypeFont("HarmonyOS Sans SC", 14.0, PdfFontStyle.Regular, True)
stringFormat = PdfStringFormat(PdfTextAlignment.Center)
page.Canvas.DrawString("轉(zhuǎn)到第一頁", font, PdfBrushes.get_Red(), rect, stringFormat)

# 保存文檔
pdf.SaveToFile("output/PDF添加導(dǎo)航動(dòng)作.pdf")
pdf.Close()

結(jié)果

用Python在PDF中創(chuàng)建聲音動(dòng)作

PdfSoundAction類表示一個(gè)音頻動(dòng)作,可以用于嵌入音頻到PDF文檔中,并在用戶執(zhí)行指定操作時(shí)播放音頻,如點(diǎn)擊動(dòng)作注釋時(shí)和打開文件時(shí)。以下是在PDF文檔中創(chuàng)建聲音動(dòng)作的操作步驟:

  1. 導(dǎo)入所需模塊。
  2. 創(chuàng)建PdfDocument類,并使用PdfDocument.LoadFromFile()方法載入PDF文件。
  3. 使用指定音頻文件創(chuàng)建PdfSoundAction實(shí)例。
  4. 使用PdfSoundAction類下的屬性設(shè)置音頻播放參數(shù)。
  5. 使用PdfSoundAction.Sound下的屬性設(shè)置音頻參數(shù)。
  6. 使用PdfDocument.Pages.get_Item()方法獲取一個(gè)頁面。
  7. 使用PdfPageBase.Canvas.DrawImage()方法在頁面指定位置繪制音頻播放圖標(biāo)。
  8. PdfSoundAction實(shí)例創(chuàng)建一個(gè)PdfActionAnnotation實(shí)例,并使用PdfPageBase.Annotations.Add()方法將其添加到頁面的音頻播放圖標(biāo)位置。
  9. 還可以直接使用PdfDocument.AfterOpenAction屬性直接將聲音動(dòng)作設(shè)置為文檔開啟時(shí)執(zhí)行的動(dòng)作。
  10. 使用PdfDocument.SaveToFile()方法保存文檔。
  11. 釋放資源。

代碼示例

from spire.pdf import *

# 創(chuàng)建PdfDocument實(shí)例并加載PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("示例2.pdf")

# 獲取文檔的第一頁
page = pdf.Pages.get_Item(0)

# 使用聲音文件路徑創(chuàng)建PdfSoundAction實(shí)例
soundAction = PdfSoundAction("Wave.wav")

# 設(shè)置音頻參數(shù)
soundAction.Sound.Bits = 16
soundAction.Sound.Channels = PdfSoundChannels.Stereo
soundAction.Sound.Encoding = PdfSoundEncoding.Signed
soundAction.Sound.Rate = 44100

# 設(shè)置播放參數(shù)
soundAction.Volume = 0.5
soundAction.Repeat = True
soundAction.Mix = True
soundAction.Synchronous = False

# 在頁面上繪制一張圖片
image = PdfImage.FromFile("Sound.png")
page.Canvas.DrawImage(image, PointF(30.0, 30.0))

# 使用聲音動(dòng)作創(chuàng)建PdfActionAnnotation實(shí)例
rect = RectangleF.FromLTRB(30.0, 30.0, image.GetBounds().Width + 30.0, image.GetBounds().Height + 30.0)
annotation = PdfActionAnnotation(rect, soundAction)

# 將注釋添加到頁面
page.Annotations.Add(annotation)

# 設(shè)置聲音動(dòng)作為文檔打開后播放
# pdf.AfterOpenAction = soundAction

# 保存文檔
pdf.SaveToFile("output/PDF創(chuàng)建聲音動(dòng)作.pdf")
pdf.Close()

結(jié)果

用Python在PDF中創(chuàng)建JavaScript動(dòng)作

PdfJavaScriptAction類表示一個(gè)JavaScript動(dòng)作,可在指定情況下在PDF文檔中執(zhí)行JavaScript代碼,如填充表單、重置表單等。以下是在PDF中創(chuàng)建JavaScript動(dòng)作的操作步驟示例:

  1. 導(dǎo)入所需模塊。
  2. 創(chuàng)建PdfDocument類,并使用PdfDocument.LoadFromFile()方法載入PDF文件。
  3. 使用PdfDocument.Pages.get_Item()方法獲取一個(gè)頁面。
  4. 自定義一段JavaScript代碼。
  5. 用此代碼創(chuàng)建PdfJavaScriptAction實(shí)例。
  6. PdfJavaScriptAction實(shí)例在頁面指定位置創(chuàng)建一個(gè)PdfActionAnnotation實(shí)例,并設(shè)置其顏色。
  7. 使用PdfPageBase.Annotations.Add()方法將注釋添加到頁面。
  8. 使用PdfDocument.SaveToFile()方法保存文檔。
  9. 釋放資源。

代碼示例

from spire.pdf import *

# 創(chuàng)建一個(gè)PdfDocument實(shí)例
pdf = PdfDocument()

# 加載一個(gè)PDF文件
pdf.LoadFromFile("示例3.pdf")

# 獲取第一頁
page = pdf.Pages.get_Item(0)

# 指定JavaScript代碼
js = """
var lastName = this.getField("LastName").value;
var firstName = this.getField("FirstName").value;
this.getField("FullName").value = lastName + " " + firstName;
"""

# 創(chuàng)建一個(gè)JavaScript動(dòng)作
jsAction = PdfJavaScriptAction(js)

# 創(chuàng)建一個(gè)帶有JavaScript動(dòng)作的注釋
rect = RectangleF.FromLTRB(380, 160, 460, 180)
annotation = PdfActionAnnotation(rect, jsAction)
annotation.Color = PdfRGBColor(Color.get_Red())

# 將注釋添加到頁面上
page.Annotations.Add(annotation)

# 繪制動(dòng)作提示文本
font = PdfTrueTypeFont("宋體", 12.0, PdfFontStyle.Regular, True)
stringFormat = PdfStringFormat(PdfTextAlignment.Center)
text = "點(diǎn)擊生成全名"
page.Canvas.DrawString(text, font, PdfBrushes.get_Red(), rect, stringFormat)

# 保存文檔
pdf.SaveToFile("output/PDF創(chuàng)建JavaScript動(dòng)作.pdf")
pdf.Close()

結(jié)果

本文演示了如何使用Python在PDF文檔中創(chuàng)建導(dǎo)航跳轉(zhuǎn)、聲音及JavaScript動(dòng)作。

到此這篇關(guān)于詳解如何使用Python在PDF文檔中創(chuàng)建動(dòng)作的文章就介紹到這了,更多相關(guān)Python PDF創(chuàng)建動(dòng)作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用python搭建一個(gè)花卉識(shí)別系統(tǒng)

    用python搭建一個(gè)花卉識(shí)別系統(tǒng)

    這學(xué)期修了一門機(jī)器視覺的選修課,課設(shè)要是弄一個(gè)花卉識(shí)別的神經(jīng)網(wǎng)絡(luò),所以我網(wǎng)上找了開源代碼進(jìn)行了修改,最后成功跑起來,結(jié)果只有一個(gè)準(zhǔn)確率(94%)既然都跑了這個(gè)神經(jīng)網(wǎng)絡(luò)的代碼,那么干脆就把這個(gè)神經(jīng)網(wǎng)絡(luò)真正的使用起來,把這個(gè)神經(jīng)網(wǎng)絡(luò)弄成一個(gè)可視化界面
    2021-06-06
  • 使用Python處理CSV文件的全面指南

    使用Python處理CSV文件的全面指南

    在數(shù)據(jù)驅(qū)動(dòng)開發(fā)中,?結(jié)構(gòu)化存儲(chǔ)?是數(shù)據(jù)處理流程的關(guān)鍵環(huán)節(jié),CSV作為一種輕量級(jí)、跨平臺(tái)的文件格式,廣泛用于數(shù)據(jù)交換、日志記錄及中小規(guī)模數(shù)據(jù)存儲(chǔ),本文將介紹如何使用 Python 處理 CSV 文件,需要的朋友可以參考下
    2025-07-07
  • 分析解決Python中sqlalchemy數(shù)據(jù)庫連接池QueuePool異常

    分析解決Python中sqlalchemy數(shù)據(jù)庫連接池QueuePool異常

    這篇文章主要來給大家分析sqlalchemy數(shù)據(jù)庫連接池QueuePool的異常,給大家用詳細(xì)的圖文方式做出了解決的方案,有需要的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09
  • python爬蟲中PhantomJS加載頁面的實(shí)例方法

    python爬蟲中PhantomJS加載頁面的實(shí)例方法

    在本篇文章里小編給大家整理了關(guān)于python爬蟲中PhantomJS加載頁面的實(shí)例方法,有需要的朋友們可以參考下。
    2020-11-11
  • 聊聊python中的循環(huán)遍歷

    聊聊python中的循環(huán)遍歷

    這篇文章主要介紹了python中的循環(huán)遍歷的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • Pytorch 定義MyDatasets實(shí)現(xiàn)多通道分別輸入不同數(shù)據(jù)方式

    Pytorch 定義MyDatasets實(shí)現(xiàn)多通道分別輸入不同數(shù)據(jù)方式

    今天小編就為大家分享一篇Pytorch 定義MyDatasets實(shí)現(xiàn)多通道分別輸入不同數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python如何判斷數(shù)獨(dú)是否合法

    Python如何判斷數(shù)獨(dú)是否合法

    這篇文章給大家介紹了如何利用Python判斷數(shù)獨(dú)是否合法,對(duì)大家學(xué)習(xí)python有一定的參考借鑒價(jià)值,有需要的可以一起來看看。
    2016-09-09
  • 利用Python實(shí)現(xiàn)sqlite3增刪改查的封裝

    利用Python實(shí)現(xiàn)sqlite3增刪改查的封裝

    在一些小的應(yīng)用中,難免會(huì)用到數(shù)據(jù)庫,Sqlite數(shù)據(jù)庫以其小巧輕便,無需安裝,移植性好著稱,下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)sqlite3增刪改查的封裝,需要的朋友可以參考下
    2021-12-12
  • pytest allure添加環(huán)境信息實(shí)例講解

    pytest allure添加環(huán)境信息實(shí)例講解

    這篇文章主要介紹了pytest allure添加環(huán)境信息實(shí)例,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Python利用Telegram機(jī)器人搭建消息提醒

    Python利用Telegram機(jī)器人搭建消息提醒

    對(duì)開發(fā)者來說,Telgram最吸引人的地方估計(jì)是 Telgram bot,你可以在建個(gè)機(jī)器人來做些事情。本文就將利用Telegram機(jī)器人搭建消息提醒,感興趣的可以參考一下
    2022-06-06

最新評(píng)論

栖霞市| 罗城| 伊宁市| 乌拉特中旗| 两当县| 长武县| 卓尼县| 错那县| 合水县| 新宾| 新昌县| 尼勒克县| 石嘴山市| 互助| 长武县| 蒙城县| 黄大仙区| 沭阳县| 土默特左旗| 霍城县| 揭西县| 台北县| 淮滨县| 左权县| 太康县| 海晏县| 襄汾县| 晋城| 福建省| 光山县| 张家界市| 新营市| 开远市| 九寨沟县| 舒城县| 新津县| 禹城市| 措美县| 会泽县| 蚌埠市| 镇江市|