以文本方式查看主题
- Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2)
---- [求助]Savetopdf 生成的pdf修改问题 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=128961)
|
-- 作者:aidimeng
-- 发布时间:2018/12/19 8:14:00
-- [求助]Savetopdf 生成的pdf修改问题
领用Savetopdf 生成的pdf文件,发现是可以编辑修改的,在论坛上我也找了相应的帮助,参考了如下地址
http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=77213&replyID=533433&skin=1
但生成的图片很不清晰
能否在生成时 加密码啊,只要不能修改就行
[此贴子已经被作者于2018/12/19 8:17:28编辑过]
|
-- 作者:有点甜
-- 发布时间:2018/12/19 9:15:00
--
那你就直接用vba存为图片,如
Dim App As New MSExcel.Application try Dim Wb As MSExcel.WorkBook = app.WorkBooks.open("d:\\test.xls") Dim Ws = wb.WorkSheets(1) Dim rg As MSExcel.Range = ws.UsedRange rg.copy \'app.visible = True ClipBoard.GetImage.save("d:\\aaa.wmf") app.quit catch ex As exception msgbox(ex.message) app.quit End try
|
-- 作者:aidimeng
-- 发布时间:2018/12/19 11:06:00
--
谢谢 我试试啊
|
-- 作者:aidimeng
-- 发布时间:2018/12/20 9:00:00
--
可以生成图片, 但是 生成的图片太小了,我换了图片格式也不行,打印和存储 都很小。
在窗口上弄正常模式显示没问题
|
-- 作者:有点甜
-- 发布时间:2018/12/20 9:29:00
--
修改pdf权限吧,参考代码
Dim reader As New iTextSharp.text.pdf.PdfReader("d:\\test.pdf") Dim document As New iTextSharp.text.Document(reader.GetPageSizeWithRotation(1)) Dim n As Integer = reader.NumberOfPages Dim baos As New IO.FileStream("d:\\test2.pdf", IO.FileMode.Create, IO.FileAccess.Write) Dim copy As New iTextSharp.text.pdf.PdfCopy(document, baos)
Dim ownerPassword = Encoding.default.GetBytes("12345") Dim permissions = iTextSharp.text.pdf.PdfWriter.ALLOW_COPY Or iTextSharp.text.pdf.PdfWriter.ALLOW_MODIFY_CONTENTS Or iTextSharp.text.pdf.PdfWriter.ALLOW_PRINTING copy.setEncryption(Nothing, ownerPassword, permissions,False) copy.ViewerPreferences = iTextSharp.text.pdf.PdfWriter.HideToolbar Or iTextSharp.text.pdf.PdfWriter.HideMenubar Or iTextSharp.text.pdf.PdfWriter.HideWindowUI \'往pdf中写入内容 document.Open() For i As Integer = 1 To n Dim page As iTextSharp.text.pdf.PdfImportedPage = copy.GetImportedPage(reader, i) copy.AddPage(page) Next document.Close() reader.Close()
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=100045&skin=0
|
-- 作者:aidimeng
-- 发布时间:2018/12/20 11:40:00
--
谢谢 我试试 此主题相关图片如下:qq图片20181220121753.png
对代码理解的不透,这样实现后 还是可以编辑
[此贴子已经被作者于2018/12/20 12:19:26编辑过]
|
-- 作者:有点甜
-- 发布时间:2018/12/20 12:27:00
--
你去打开123.pdf这个文件测试啊。
|
-- 作者:aidimeng
-- 发布时间:2018/12/20 12:28:00
--
试了,一样可以编辑,是不是我理解的不对啊
[此贴子已经被作者于2018/12/20 12:42:19编辑过]
|
-- 作者:有点甜
-- 发布时间:2018/12/20 15:25:00
--
1、请截图说明可以怎么编辑?
2、除了这些 iTextSharp.text.pdf.PdfWriter.ALLOW_COPY Or iTextSharp.text.pdf.PdfWriter.ALLOW_MODIFY_CONTENTS Or iTextSharp.text.pdf.PdfWriter.ALLOW_PRINTING
还有如下权限,你可以加上看看
PdfWriter.ALLOW_ASSEMBLY、PdfWriter.ALLOW_FILL_IN、PdfWriter.ALLOW_MODIFY_ANNOTATIONS、PdfWriter.ALLOW_DEGRADED_PRINTING、PdfWriter.ALLOW_SCREENREADERS、PdfWriter.DO_NOT_ENCRYPT_METADATA
|
-- 作者:aidimeng
-- 发布时间:2018/12/21 5:26:00
--
打开pdf后 点击编辑,正文还可以修改
有密码保护了,但还是可以编辑,
此主题相关图片如下:qq截图20181221074842.png
pdf显示如下权限
此主题相关图片如下:qq图片20181221075051.png
您说的那些我也加上了
Dim reader As New iTextSharp.text.pdf.PdfReader(fl) Dim document As New iTextSharp.text.Document(reader.GetPageSizeWithRotation(1)) Dim n As Integer = reader.NumberOfPages Dim baos As New IO.FileStream("d:\\123.pdf", IO.FileMode.Create, IO.FileAccess.Write) Dim copy As New iTextSharp.text.pdf.PdfCopy(document, baos)
Dim ownerPassword = Encoding.default.GetBytes("12345") Dim permissions =iTextSharp.text.pdf.PdfWriter.ALLOW_SCREENREADERS Or iTextSharp.text.pdf.PdfWriter.ALLOW_DEGRADED_PRINTING Or iTextSharp.text.pdf.PdfWriter.ALLOW_MODIFY_ANNOTATIONS Or iTextSharp.text.pdf.PdfWriter.ALLOW_FILL_IN Or iTextSharp.text.pdf.PdfWriter.ALLOW_ASSEMBLY Or iTextSharp.text.pdf.PdfWriter.ALLOW_COPY Or iTextSharp.text.pdf.PdfWriter.ALLOW_MODIFY_CONTENTS Or iTextSharp.text.pdf.PdfWriter.ALLOW_PRINTING copy.setEncryption(Nothing, ownerPassword, permissions,False) copy.ViewerPreferences = iTextSharp.text.pdf.PdfWriter.HideToolbar Or iTextSharp.text.pdf.PdfWriter.HideMenubar Or iTextSharp.text.pdf.PdfWriter.HideWindowUI \'往pdf中写入内容 document.Open() For i9 As Integer = 1 To n Dim page As iTextSharp.text.pdf.PdfImportedPage = copy.GetImportedPage(reader, i9) copy.AddPage(page) Next document.Close() reader.Close()
[此贴子已经被作者于2018/12/21 7:52:37编辑过]
|