以文本方式查看主题

-  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()

 

下载信息  [文件大小:1.3 MB  下载次数:5]
图片点击可在新窗口打开查看点击浏览该文件:itextsharp.zip

 

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_ASSEMBLYPdfWriter.ALLOW_FILL_INPdfWriter.ALLOW_MODIFY_ANNOTATIONSPdfWriter.ALLOW_DEGRADED_PRINTINGPdfWriter.ALLOW_SCREENREADERSPdfWriter.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编辑过]