|
O componente AspPdf permite que você crie, leia e modifique dinamicamente arquivos no formato *.pdf via script Asp.
Pdf é um tipo de arquivo que possibilita a visualização de documentos em diversos sistemas operacionais através do Adobe Reader preservando a diagramação, tipo-de-fonte, tamanho das fontes entre outras características, sem a necessidade da aplicação original que a gerou.
Criando um arquivo PDF
Arquivo: asppdf.asp ( por exemplo )
<source lang="html4strict">
<!— Formulário html onde será informado o 'texto' a ser inserido no arquivo PDF a ser gerado --->
<html>
<head>
<title>AspPdf</title>
</head>
<body>
<form action="" method="post">
<b>Insira aqui um texto qualquer:</b><br>
<textarea name="texto" cols="80" rows="16"></textarea><br>
<input type="submit" name="Save" Value="Gerar PDF">
</form>
<!-- Fim do formulário html -->
<!-- Início do script ASP --->
<%
'Caso o formulário tenha sido enviado
If request.form("texto") <> "" Then
'Declara as variáveis a serem utilizadas no script
Dim AspPdf, Doc, Page, Font, Text, Param, Filename, CharsPrinted
'Instancia o objeto na memória
SET AspPdf = Server.CreateObject("Persits.Pdf")
SET Doc = AspPdf.CreateDocument
'Define o tamanho da folha em milímetros
SET Page = Doc.Pages.Add( 216, 280 )
'Define o tipo de fonte a ser utilizada
SET Font = Doc.Fonts("Times-Roman")
'Obtem o texto informado no formulário html
Text = Request.Form("texto")
'Define os parâmetros de alinhamento: X, Y do canto superior esquerdo ao lado inferior direito, altura, largura e tamanho da fonte.
SET param = AspPdf.CreateParam("x=10;y=270;height=260;width=196; size=10;")
Do While Len(Text) > 0
CharsPrinted = Page.Canvas.DrawText(Text, Param, Font )
If CharsPrinted = Len(Text) Then Exit Do
SET Page = Page.NextPage
Text = Right( Text, Len(Text) - CharsPrinted)
Loop
'Define o nome do arquivo PDF a ser gerado
Filename = Doc.Save( "e:\home\SEU_LOGIN_FTP\web\asppdf\texto.pdf", False )
'Para quem utiliza serviços da REVENDA conosco
'Filename = Doc.Save("E:\vhosts\DOMINIO_COMPLETO\httpdocs\asppdf\texto.pdf", False )
response.write "<font color='blue'><b>Arquivo gerado com sucesso!</b></font>"
response.write "<br>Clique <a href=" & Filename & " target='_blank'>aqui</a> para visualizar o arquivo."
SET AspPdf = Nothing
SET Doc = Nothing
SET Page = Nothing
SET Font = Nothing
SET Param = Nothing
End If
%>
<!-- Fim ASP --->
</body>
</html>
</source>
|
Em nosso exemplo foi utilizado o diretório 'asppdf', substitua pelo diretório em que você deseja gravar o arquivo *.pdf. Necessariamente este diretório deve ter permissão de "Leitura/Escrita" que deve ser concedida através do painel de controle conforme instruções do artigo Alterando a permissão de pastas em Windows .
Dúvidas ?
Caso ainda surjam dúvidas na utilização do componente, consulte o site/manual do fabricante no link abaixo e/ou sites/forums especializados no assunto.
Possíveis Erros e Soluções
- MSXML2::ServerXMLHTTP Error: The request has timed out
Conforme informado no site do fabricante, esta mensagem de erro pode ocorrer caso você esteja tentando gerar um arquivo PDF utilizando como fonte(origem), um script hospedado na mesma área de hospedagem/pool de aplicativos que o seu site.
Exemplo
<%
Set Pdf = Server.CreateObject("Persits.Pdf")
Set Doc = Pdf.CreateDocument
....
....
'PODE GERAR ERROS - Procure não utilizar scripts da própria área de hospedagem como fonte na geração do PDF
Doc.ImportFromUrl "http://www.MEUDOMINIO.com.br/PDFfonte.asp.asp?codigo=123456"
....
>%
Para mais detalhes sobre o problema relatado, consulte a documentação do fabricante disponível neste link.
SOLUÇÃO 1
Você pode alocar o seu script que gera o arquivo PDF em uma sub-pasta da sua hospedagem(exemplo \Web\GeradorPDF\), em seguida configurar esta pasta(\GeradorPDF\) para ser um diretório virtual da sua hospedagem(.Net FrameWork 1.1). Para criar um diretório virtual nesta pasta, basta seguir as instruções do link abaixo.
SOLUÇÃO 2
Você pode passar a utilizar o componente ABCpdf, onde há principio este problema não ocorre.
|
O código mencionado acima é somente um exemplo. Caso haja dúvidas quanto sua utilização, sugerimos que verifique juntamente a um desenvolvedor de sua confiança.
|
Veja também
Links
|