我有一个从桌面接收PDF文件的功能。我想要的是在保存PDF之前,先停用剪贴板,以使它们无法复制文档的文本或图像。
我的代码:
Dim NombreArchivo As String = System.IO.Path.GetFileName(File1.PostedFile.FileName) ' obtiene nombre archivo
Dim docsubido As New Document()
Dim SaveLocation As String = Server.MapPath("Pdf") & "\" & NombreArchivo ' obtiene ruta donde se guardara
If Not File1.PostedFile Is Nothing And File1.PostedFile.ContentLength > 0 Then
Try
File1.PostedFile.SaveAs(SaveLocation)
Response.Write("El archivo ha sido cargado.")
Catch Exc As Exception
Response.Write("Error: " & Exc.Message)
End Try
Else
Response.Write("Seleccione un archivo para cargar.")
End If
End Sub
答案 0 :(得分:0)
最后,这是一种能够禁用仅复制和粘贴PDF属性的解决方案
Imports iTextSharp.text.pdf
Imports iTextSharp.text.pdf.PdfStamper
Private Sub Submit1_ServerClick(sender As Object, e As EventArgs) Handles Submit1.ServerClick
Dim NombrePdfEntrada As String = System.IO.Path.GetFileName(File1.PostedFile.FileName) ' obtiene nombre archivo
Dim SaveLocation As String = Server.MapPath("Pdf") & "\" & NombrePdfEntrada ' obtiene ruta donde se guardara
If Not File1.PostedFile Is Nothing And File1.PostedFile.ContentLength > 0 Then
Try
File1.PostedFile.SaveAs(SaveLocation)
Dim ArchivoCargado As New PdfReader(SaveLocation)
Dim rutasalida As New FileStream(Server.MapPath("Pdf") & "\Nuevo" & NombrePdfEntrada, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)
Dim stampArchivoOutput As New PdfStamper(ArchivoCargado, rutasalida)
Dim passdue As String = ""
Dim arraydueño() As Byte = System.Text.Encoding.ASCII.GetBytes(passdue)
Dim passinv As String = ""
Dim arrayinvitado() As Byte = System.Text.Encoding.ASCII.GetBytes(passinv)
stampArchivoOutput.SetEncryption(False, passdue, passinv, PdfWriter.ALLOW_PRINTING)
stampArchivoOutput.Close()
ArchivoCargado.Close()
Response.Write("El archivo ha sido cargado.")
Catch Exc As Exception
Response.Write("Error: " & Exc.Message & Exc.HelpLink
)
End Try
Else
Response.Write("Seleccione un archivo para cargar.")
End If
End Sub
End Class