从 Excel 转换后保护 PDF 不被编辑

从 Excel 转换后保护 PDF 不被编辑

以下是将 Excel 文件转换为 PDF 的 VBA 代码,并带有所需的文件名。我该如何修改此宏以保护 PDF 不被编辑?

Private Sub CommandButton2_Click()
'saves the file as PDF and adds a date parameter to the name of the file

aux1 = ""
If Month(Date) < 10 Then
aux1 = "0"
End If
aux2 = ""
If Day(Date) < 10 Then
aux2 = "0"
End If

fileN = "Salary Slip of " & Workbooks.Application.Sheets("Salary Slip").Cells(10, 5).Value
fileD = Format(Sheets("Salary Slip").Cells(6, 2).Value, "mmm-yy")

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & fileN & " for " & fileD & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

End Sub

答案1

正如评论中指出的那样,没有外部工具就没有直接的方法来实现这一点。需要一个成熟的 PDF 库,它可能太大太复杂,无法合并到 Excel 文件中。

为了防止PDF更改,您可以使用以下工具PDFtk加密文件并限制权限。您可以PDFtk使用功能。使用pdftk --help来了解所有选项。

例子:

call Shell("pdftk.exe myfile.pdf output protected.pdf encrypt_128bit")

该示例假设可以在搜索中找到 pdftk.exe PATH。如果文件路径包含空格,请添加双引号。

PDFtk不允许打印加密文件,除非明确允许。否则,使用打印到文件技巧

相关内容