Neste artigo você verá que é fácil gerar PDF a partir de uma URL usando o ASP e o Componente Persits.Pdf.
Para começar, você encontra o Componente Persits.Pdf nesse link. Efetue o download, que tem uma licença para teste, instale e vamos lá!
Crie uma página de exemplo chamada GeradorPDF.asp e coloque o seguinte código:
<!--METADATA TYPE="TypeLib" UUID="{414FEE4B-2879-4090-957E-423567FFCFC6}"-->
<%
Dim Pdf, Doc, Page
Set Pdf = Server.CreateObject("Persits.Pdf")
Set Doc = Pdf.CreateDocument
Doc.ImportFromUrl "http://www.terra.com.br"
Doc.Encrypt "7658tedk4784584754747584484584854484545", "", 40, PdfFull And (Not PDFModify) And (Not PDFCopy)
For Each Page In Doc.Pages
Page.Canvas.DrawText "Pág."Page.Index"/"Doc.Pages.Count"", "x=15, y=20", Doc.Fonts("Arial")
Next
Doc.SaveHttp("attachment; filename=GerarPDF.pdf")
%>
Na sétima linha:
Doc.ImportFromUrl “http://www.terra.com.br”
Colocamos o Link, que pode ser definitivo como ´http://teste.com.br/default.asp´ ou default.html, para ser gerado o nosso PDF.
Qual server será utilizado para identificar os parâmetros de bloqueio do seu PDF a ser gerado, como por exemplo, não copiar, não imprimir, dentre outros que estão nesse link (http://www.asppdf.com/manual_08.html), são referências do Componente.
E é com essa linha de comando, Doc.Encrypt “7658tedk4784584754747584484584854484545”, “”, 40, PdfFull And (Not PDFModify) And (Not PDFCopy), que colocamos os comandos de Encrypt. Inseri uma seqüência de números qualquer e você, caso queira, pode criar sua própria (acesse o manual para mais informações).
Atenção a esta linha de código:
PdfFull And (Not PDFModify) And (Not PDFCopy)
É nela que você vai colocar os parâmetros que define o que o usuário vai mexer no PDF, exemplo: eu deixei um default que é o PdfFull e bloqueei para ele não modificar e para não copiar. Veja a tabela do que você pode colocar a mais e o peso em Bit aqui:
pdfFull = HFFFFFFFC (all significant bits)
pdfPrint = H04 (Bit 3)
pdfModify = H08 (Bit 4)
pdfCopy = H10 (Bit 5)
pdfAnnotations = H20 (Bit 6)
pdfForm = H0100 (Bit 9)
pdfExtract = H0200 (Bit 10)
pdfAssemble = H0400 (Bit 11)
pdfPrintHigh = H0800 (Bit 12)
For Each Page In Doc.Pages
Page.Canvas.DrawText “Pág.”Page.Index”/”Doc.Pages.Count””, “x=15, y=20”, Doc.Fonts(“Arial”)
Next
Aqui coloco a quantidade de páginas que existem no meu arquivo, da seguinte forma: ´Pág. 1/5´, com fonte Arial; o x e y são só espaçamentos, veja no manual.
E por fim:
Doc.SaveHttp(“attachment; filename=GerarPDF.pdf”)
Salvo no Computador do usuário. Simples, simples!
Abraços, amigos!