Skip to main content
Inspiring
September 25, 2019
Answered

Create PDF

  • September 25, 2019
  • 7 replies
  • 2433 views

Bonjour,

Je voudrais créer un PDF suite à une mémorisation dans une variable :

<CFOUTPUT>	
	<!--- Debut de la memorisation des informations dans C --->
	<cfset C= "">
	<cfset C=C & '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'& #CRLF#> 
	<cfset C=C & '<html>'& #CRLF#>  
	<cfset C=C & '<head>'& #CRLF#>  
	<cfset C=C & '<title>Les aventures de l'extrème</title>'& #CRLF#>  
	<cfset C=C & '</head>'& #CRLF#>  
	<cfset C=C & '<body>'& #CRLF#> 
	<cfset C=C & '<p style="text-align: center;"><br /></p>' & #CRLF#>
	<cfset C=C & '<p style="text-align: center;"><br /></p>'& #CRLF#>
	<cfset C=C & '<p style="text-align: center;"><br /></p>' & #CRLF#>
	<cfset C=C & '<cfdocumentitem type="pagebreak"/>'>
    <cfset C=C & '<p><br /></p>'& #CRLF#>
    <cfset C=C & '<p style="text-align: center;">Albert Dupontel</p>'& #CRLF#>
  	<cfset C=C & '<p><br /></p>'& #CRLF#>
  	<cfset C=C & '<p><br /></p>'& #CRLF#>
  	<cfset C=C & '<h1 style="text-align: center;"><h1>Les aventures de l'extrème</h1>'& #CRLF#>
  	<cfset C=C & '<p><br /></p>'& #CRLF#>
  	<cfset C=C & '<p><br /></p>'& #CRLF#>
  	<cfset C=C & '<p><br /></p>'& #CRLF#>
  	<cfset C=C & '<p><br /></p>'& #CRLF#>
	<cfset C=C & '<cfdocumentitem type="pagebreak"/>'>
	<cfset C=C & '<p><br /></p>' & #CRLF#>
	<cfset C=C & '<p><br /></p>' & #CRLF#>
	<cfset C=C & '<p style="text-align: center;"><br /></p>'& #CRLF#>
	<cfset C=C & '<p style="text-align: center;"><br /></p>' & #CRLF#>
  	<cfset C=C & '<p style="text-align: center;">Le code de propri&eacute;t&eacute; intellectuelle interdit les copies ou reproductions destin&eacute;es&nbsp;&agrave;&nbsp; une utilisation collective.</p>' & #CRLF#>
  	<cfset C=C & '<p style="text-align: center;">Toute reproduction ou repr&eacute;sentation int&eacute;grale ou partielle faite par quelque proc&eacute;d&eacute;</p>' & #CRLF#> 
	<cfset C=C & '<p style="text-align: center;">que ce soit sans le consentement des auteurs ou de ses ayants droit ou ayants cause est illicite et constitue</p>' & #CRLF#> 
	<cfset C=C & '<p style="text-align: center;">une contre fa&ccedil;on, au terme des paragraphes 2 et 3 des articles 22_5,</p>' & #CRLF#>
	<cfset C=C & '<p style="text-align: center;"> L 122_4, L 335_2 et suivant du Code de la propri&eacute;t&eacute; intellectuelle.</p>' & #CRLF#>
  	<cfset C=C & '<p style="text-align: center;"><br /></p>' & #CRLF#>
  	<cfset C=C & '<p style="text-align: center;">&copy; Albert Dupontel</p>' & #CRLF#>
 	<cfset C=C & '<p style="text-align: center;">D&eacute;pot l&eacute;gal : #DateFormat(Now(),"YYYY-MM-DD")#</p>' & #CRLF#>
	<cfset C=C & '<cfdocumentitem type="pagebreak"/>'>
	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
  	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
  	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
  	<cfset C=C & '<p class="reference" style="text-align: center;">Adaptation e-book : #DateFormat(Now(),"YYYY-MM-DD")#</p>' & #CRLF#>
	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
  	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
  	<cfset C=C & '<p class="reference" style="text-align: center;"><u><a href="http://Abertdupontel@hotmail.com/">Abert Dupontel</a></u></p>' & #CRLF#>
	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
  	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
	<cfset C=C & '<cfdocumentitem type="pagebreak"/>'>
	<cfset C=C & '<h2>Avertissement</h2>'& #CRLF#>
	<cfset C=C & 'Ce livre raconte une enquête policière étrange. C’est aussi une histoire romancée de mes ascendants. Julie de Bozonnier de Vaumane a réellement vécu. Elle est mon arrière-grand-mère paternelle.
Tous les événements historiques relatés dans les pages que vous allez lire sont réels. Les personnages ont existé, ainsi que les lieux. Bien sûr les dialogues sont inventés, les situations imaginées, les sentiments romancés.
'& #CRLF#>
	<cfset C=C & '</body>'& #CRLF#>
	<cfset C=C & '</html>'& #CRLF#>
	
	
	
	<!---  Construction et affichage du PDF --->
	<CFDOCUMENT format="PDF" 
				filename="MyPDF.pdf" 
				overwrite="Yes">
				#C#
	</CFDOCUMENT> 
	
	<cfheader name="Content-Disposition" 
		      value="attachment;filename=MyPDF.pdf"> 
	<cfcontent type="application/PDF"
			   file="#DIR#/MyPDF.pdf" 
			   deletefile="Yes"> 

	<!---  Ecriture du PDF --->
	<CFFILE action="WRITE" 
			file="#DIR#/MyPDF.pdf"  
			output="#C#">   
			
</CFOUTPUT>

 A chaque fois j'ai le même message : Nous n'avons pas pu ouvrir le PDF. Un problème empéche l'ouverture du PDF.

Je pensais que cela pouvait venir des accentués mais mais malgré un parser, j'ai le même résultat.

Merci pour votre aide.

This topic has been closed for replies.
Correct answer ZNB

Suggestions:

1) Delete unneccessary # symbols.

2) Delete the cffile-write tag. It is unncessary because cfdocument writes the file.

3) Use cfsavecontent to group the code at the top into a variable called docIntro.

4) Include the contents of C1 in the cfdocument tag.

5) Remove the tags <html>, <body> from the original definition of  the variable C. That is because you have introduced a new set of tags <html> and <body> above.

Initialize C with: 

 

<cfset C=docIntro>

 

 

<cfsavecontent variable="docIntro" >
<HTML>
<! DOCTYPE html /> 
<HEAD>
	<CFINCLUDE template="../inc_init_admin.cfm">
	<CFINCLUDE template="../inc_verif_var2.cfm"> 
	<cfset Auteur="Jean-Marc IRLES"> 
	<cfset Titre="Le dernier secret de Julie Finet">
	<cfset ChapitresTitle="Avertissement">
	<cfset ChapitresTexte="Ce livre raconte une enquête policière étrange. C’est aussi une histoire romancée de mes ascendants. Julie de Bozonnier de Vaumane a réellement vécu. Elle est mon arrière-grand-mère paternelle.
	Tous les événements historiques relatés dans les pages que vous allez lire sont réels. Les personnages ont existé ainsi que les lieux. Bien sûr, les dialogues sont inventés, les situations imaginées, les sentiments romancés.">
	<cfset DIR=db_dir & "SoLivres" & "\" & "_Ebooks" & "\" & "SoLivres" & "\" & Auteur & "\" & Titre >
	<cfset DIRI="..\..\..\" & "SoLivres" & "\" & "_Ebooks" & "\" & "SoLivres" & "\" & Auteur & "\" & Titre & "\" & "images">
<!--- 	DIR : #DIR#<BR>
	DIRI : #DIRI#<BR> --->
</HEAD>

 <BODY>
	<!--- parser pour accentués et autres --->
	<CFIF trim(Auteur) IS NOT "">
		<cfset chr=Auteur>
		<CFINCLUDE template="../inc_parser.cfm">
		<cfset Auteur=chr>
	</CFIF>

	<CFIF trim(Titre) IS NOT "">
		<cfset chr=Titre>
		<CFINCLUDE template="../inc_parser.cfm">
		<cfset Titre=chr>
	</CFIF> 
</cfsavecontent>

	
	
	<cfset CRLF = chr (13) & chr (10) />
	
<CFOUTPUT>
	<!--- Debut de la memorisation des informations dans C --->
		<cfset C=docIntro>
		<cfset C1="">
		<cfset C2="">
		<cfset C3="">
		<cfset C4="">
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& '<p align=center><IMG src="#DIRI#\Couv.jpg" border="0" align="top"></p>'& CRLF>
		
		<cfset C1=C1& "<p><br /></p>" & CRLF>
		<cfset C1=C1& "<p><br /></p>" & CRLF>
		<cfset C1=C1& "<p><br /></p>" & CRLF>
		<cfset C1=C1& "<p><br /></p>" & CRLF>
		<cfset C1=C1& "<h2 align=center>#Auteur#</h2>"& CRLF>
		<cfset C1=C1& "<p><br /></p>" & CRLF>
		<cfset C1=C1& "<p><br /></p>" & CRLF>
		<cfset C1=C1& "<h1 align=center>#Titre#</h1>"& CRLF>
		<cfset C1=C1& "<p><br /></p>" & CRLF>
		<cfset C1=C1& "<p><br /></p>" & CRLF>
        <cfset C1=C1& '<p align=center><IMG src="SoLivres.jpg" border="0" align="top"></p>'& CRLF>
		
		<cfset C2=C2& "<p><br /></p>" & CRLF>
		<cfset C2=C2& "<p><br /></p>" & CRLF>
		<cfset C2=C2& "<p><br /></p>" & CRLF>
		<cfset C2=C2& "<p><br /></p>" & CRLF>
		<cfset C2=C2& "<p><br /></p>" & CRLF>
		<cfset C2=C2& '<p align=center><IMG src="SoLivres.jpg" border="0" align="top"></p>'& CRLF>
		<cfset C2=C2& "<p><br /></p>" & CRLF>
		<cfset C2=C2& "<p style='text-align: center;'><a href='http://info@solivres.com/'>www. solivres.com</a>"& CRLF>
		<cfset C2=C2& "<p style='text-align: center;'>Adaptation e-book #DateFormat(Now(),'DD-MM-YYYY')#"& CRLF>

		
		<cfset C3=C3& "<p><br /></p>" & CRLF>
		<cfset C3=C3& "<p><br /></p>" & CRLF>
		<cfset C3=C3& "<p><br /></p>" & CRLF>
		<cfset C3=C3& "<p><br /></p>" & CRLF>
		<cfset C3=C3& "<p><br /></p>" & CRLF>
		<cfset C3=C3& "<p><br /></p>" & CRLF>
		<cfset C3=C3& "<p><br /></p>" & CRLF>
		<cfset C3=C3& "<p><br /></p>" & CRLF>
		<cfset C3=C3& "<p><br /></p>" & CRLF>
		<cfset C3=C3& "<p><br /></p>" & CRLF>
		<cfset C3=C3& "<p><br /></p>" & CRLF>
		<cfset C3=C3& "<p style='text-align: center;'>Le code de propri&eacute;t&eacute; intellectuelle interdit les copies ou reproductions destin&eacute;es&nbsp;&agrave;&nbsp; une utilisation collective.</p>" & CRLF>
		<cfset C3=C3& "<p style='text-align: center;'>Toute reproduction ou repr&eacute;sentation int&eacute;grale ou partielle faite par quelque proc&eacute;d&eacute;</p>" & CRLF> 
		<cfset C3=C3& "<p style='text-align: center;'>que ce soit sans le consentement des auteurs ou de ses ayants droit ou ayants cause est illicite et constitue</p>" & CRLF> 
		<cfset C3=C3& "<p style='text-align: center;'>une contre fa&ccedil;on, au terme des paragraphes 2 et 3 des articles 22_5,</p>" & CRLF>
		<cfset C3=C3& "<p style='text-align: center;'> L 122_4, L 335_2 et suivant du Code de la propri&eacute;t&eacute; intellectuelle.</p>" & CRLF>
		<cfset C3=C3& "<p style='text-align: center;'><br /></p>" & CRLF>
		<cfset C3=C3& "<p style='text-align: center;'>&copy; #Auteur#</p>" & CRLF>
		<cfset C3=C3& "<p style='text-align: center;'>D&eacute;pot l&eacute;gal : #DateFormat(Now(),'DD-MM-YYYY')#</p>" & CRLF>
		<cfset C3=C3& "<p style='text-align: center;'><u>Email : <a href='http://JeanMarcIRLES@hotmail.com/'>#Auteur#</a></u></p>" & CRLF>
		
		<cfset C4=C4& "<p><br /></p>" & CRLF>
		<cfset C4=C4& "<p><br /></p>" & CRLF>
		<cfset C4=C4& "<p><br /></p>" & CRLF>
		<cfset C4=C4& "<p><br /></p>" & CRLF>
		<cfset C4=C4& "<p><br /></p>" & CRLF>
		<cfset C4=C4& "<p><br /></p>" & CRLF>
		<cfset C4=C4& "<p><br /></p>" & CRLF>
		<cfset C4=C4& "<p><br /></p>" & CRLF>
		<cfset C4=C4& "<p><br /></p>" & CRLF>
		<cfset C4=C4& "<h2>#ChapitresTitle#</h2>"& CRLF>
		<cfset C4=C4& "<p>#ChapitresTexte#</p>"& CRLF> 
		<cfset C4=C4& "<p></body>" & CRLF>
		<cfset C4=C4& "<p></html>" & CRLF>



	<!--- Construction et affichage du PDF ---> 
	<CFDOCUMENT
			FORMAT="PDF" 
			filename="#DIR#/MyPDF.pdf" 
			overwrite="Yes">
			#C#
                        #C1#
			<cfdocumentitem type='pagebreak'/> 
			#C2#
			<cfdocumentitem type='pagebreak'/> 
			#C3#
			<cfdocumentitem type='pagebreak'/> 
			#C4#
	</CFDOCUMENT> 
	
	<CFMAIL TO="jmbusselet@hotmail.com" 
			FROM="marc75paris@outlook.fr" 
			type="HTML" 
			SUBJECT="voici une copie"> 
			<cfmailparam file = "#DIR#/MyPDF.pdf"/> 
		Veuillez trouvez ci-joint le pdf demandé
	</CFMAIL> 
	
<!--- Affichage PDF --->
<cfheader name="Content-Disposition" value="attachment;filename=MyPDF.pdf"> 
<cfcontent type="application/PDF" file="#DIR#/MyPDF.pdf" deletefile="No">  

</CFOUTPUT> 

 

 


Bonjour,

Je voulais vous remercier tous (et surtout BKBK) pour votre aide et pour votre ... patience.

J'ai appris beaucoup de choses.

Encore merci

Cordialement

 

Hello,

I wanted to thank you all (and especially BKBK) for your help and for your ... patience.

I learned a lot of things.

Thanks again

Cordially

7 replies

BKBK
Community Expert
Community Expert
October 19, 2019

1) Change every occurrence of #CRLF# to CRLF;

2) Replace the line

<cfset C=C & '<title>Les aventures de l'extrème</title>'& CRLF>

with the line

<cfset C=C & "<title>Les aventures de l'extrème</title>" & CRLF>

3) Replace the line

<cfset C=C & '<h1 style="text-align: center;"><h1>Les aventures de l'extrème</h1>'& CRLF>

with the line

<cfset C=C & "<h1 style=""text-align: center;""><h1>Les aventures de l'extrème</h1>" & CRLF>

4) Use the same absolute file path for the attributes <CFDOCUMENT filename="absolute_file_path"> and <cfcontent file="absolute_file_path">. In my example [absolute_file_path =expandpath('MyPDF.pdf')], the PDF file is saved in the current directory.

5) <CFDOCUMENT> creates and writes the PDF to the file path! So, if you set deleteFile="no" (using <cfcontent deletefile="No">), the PDF file will be saved on the file system. It will therefore be unnecessary to use cffile-write

 

<CFOUTPUT>	
	<!--- Debut de la memorisation des informations dans C --->
	<cfset C= "">
	<cfset C=C & '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' & CRLF> 
	<cfset C=C & '<html>' & CRLF>  
	<cfset C=C & '<head>' & CRLF>  
	
	<cfset C=C & "<title>Les aventures de l'extrème</title>" & CRLF> 
	 
	<cfset C=C & '</head>' & CRLF>  
	<cfset C=C & '<body>' & CRLF> 
	<cfset C=C & '<p style="text-align: center;"><br /></p>' & CRLF>
	<cfset C=C & '<p style="text-align: center;"><br /></p>' & CRLF>
	<cfset C=C & '<p style="text-align: center;"><br /></p>' & CRLF>
	<cfset C=C & '<cfdocumentitem type="pagebreak"/>'>
    <cfset C=C & '<p><br /></p>' & CRLF>
    <cfset C=C & '<p style="text-align: center;">Albert Dupontel</p>' & CRLF>
  	<cfset C=C & '<p><br /></p>' & CRLF>
  	<cfset C=C & '<p><br /></p>' & CRLF>
  	
  	<cfset C=C & "<h1 style=""text-align: center;""><h1>Les aventures de l'extrème</h1>" & CRLF>
  	
  	<cfset C=C & '<p><br /></p>' & CRLF>
  	<cfset C=C & '<p><br /></p>' & CRLF>
  	<cfset C=C & '<p><br /></p>' & CRLF>
  	<cfset C=C & '<p><br /></p>' & CRLF>
	<cfset C=C & '<cfdocumentitem type="pagebreak"/>'>
	<cfset C=C & '<p><br /></p>' & CRLF>
	<cfset C=C & '<p><br /></p>' & CRLF>
	<cfset C=C & '<p style="text-align: center;"><br /></p>' & CRLF>
	<cfset C=C & '<p style="text-align: center;"><br /></p>' & CRLF>
  	<cfset C=C & '<p style="text-align: center;">Le code de propri&eacute;t&eacute; intellectuelle interdit les copies ou reproductions destin&eacute;es&nbsp;&agrave;&nbsp; une utilisation collective.</p>' & CRLF>
  	<cfset C=C & '<p style="text-align: center;">Toute reproduction ou repr&eacute;sentation int&eacute;grale ou partielle faite par quelque proc&eacute;d&eacute;</p>' & CRLF> 
	<cfset C=C & '<p style="text-align: center;">que ce soit sans le consentement des auteurs ou de ses ayants droit ou ayants cause est illicite et constitue</p>' & CRLF> 
	<cfset C=C & '<p style="text-align: center;">une contre fa&ccedil;on, au terme des paragraphes 2 et 3 des articles 22_5,</p>' & CRLF>
	<cfset C=C & '<p style="text-align: center;"> L 122_4, L 335_2 et suivant du Code de la propri&eacute;t&eacute; intellectuelle.</p>' & CRLF>
  	<cfset C=C & '<p style="text-align: center;"><br /></p>' & CRLF>
  	<cfset C=C & '<p style="text-align: center;">&copy; Albert Dupontel</p>' & CRLF>
 	<cfset C=C & '<p style="text-align: center;">D&eacute;pot l&eacute;gal : #DateFormat(Now(),"YYYY-MM-DD")#</p>' & CRLF>
	<cfset C=C & '<cfdocumentitem type="pagebreak"/>'>
	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & CRLF>
  	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & CRLF>
	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & CRLF>
	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & CRLF>
  	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & CRLF>
  	<cfset C=C & '<p class="reference" style="text-align: center;">Adaptation e-book : #DateFormat(Now(),"YYYY-MM-DD")#</p>' & CRLF>
	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & CRLF>
  	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & CRLF>
  	<cfset C=C & '<p class="reference" style="text-align: center;"><u><a href="http://Abertdupontel@hotmail.com/">Abert Dupontel</a></u></p>' & CRLF>
	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & CRLF>
  	<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & CRLF>
	<cfset C=C & '<cfdocumentitem type="pagebreak"/>'>
	<cfset C=C & '<h2>Avertissement</h2>' & CRLF>
	<cfset C=C & 'Ce livre raconte une enquête policière étrange. C’est aussi une histoire romancée de mes ascendants. Julie de Bozonnier de Vaumane a réellement vécu. Elle est mon arrière-grand-mère paternelle.
Tous les événements historiques relatés dans les pages que vous allez lire sont réels. Les personnages ont existé, ainsi que les lieux. Bien sûr les dialogues sont inventés, les situations imaginées, les sentiments romancés.
' & CRLF>
	<cfset C=C & '</body>' & CRLF>
	<cfset C=C & '</html>' & CRLF>
	
	
	
	<!---  Construction et affichage du PDF --->
	<CFDOCUMENT format="PDF" 
				filename="#expandpath('MyPDF.pdf')#" 
				overwrite="Yes">
				#C#
	</CFDOCUMENT> 
	
	<cfheader name="Content-Disposition" 
		      value="attachment;filename=MyPDF.pdf"> 
	<cfcontent type="application/PDF"
			   file="#expandpath('MyPDF.pdf')#" 
			   deletefile="No"> 
			   
<!--- CFFILE-WRITE is unnecessary when you use deletefile="No" --->

	<!---  Ecriture du PDF --->
	<!---
	<CFFILE action="WRITE" 
			file="#DIR#/MyPDF.pdf"  
			output="#C#">  
			---> 
			
</CFOUTPUT>

 

 

WolfShade
Legend
October 17, 2019
<cfsavecontent variable="C">
<!DOCTYPE html /><!--- This is modern HTML5 doctype; you have HTML4.1 --->
<html>
    <head>
        <title>Les aventures de l'extreme</title>
    </head>
    <body>
<!--- I'm not going to type out all of it, but you put your code here.
BTW, I noticed that you have CFDOCUMENTITEM and I don't think that will work. --->
    </body>
</html>
</cfsavecontent>
<cfmail to="{your email address}" from="{server email address}" subject="here is a copy">
<cfmailparam file="filename.pdf" content="#C#" disposition="attachment" />
Body of email content goes here..
</cfmail>
<cfheader name="content-disposition" value="attachment; filename=filename.pdf" />
<cfcontent type="application/pdf" variable="#C#" />

 

If you follow this example, it should work.  If it doesn't work, check logs and browser console for error messages.

 

HTH,

 

^ _ ^

WolfShade
Legend
October 17, 2019

Bonjour,

 

1 - the system crashes when I use : <cfset C & = ...

You need to use <cfset C &= ... with no space between the & and the =.  CF does not understand <cfset C & =..  Sorry, that was done by Google Translate.

 

2 - When I use cfsavecontent, the display of C is no longer done.

<cfsavecontent variable="C"> Your content here </cfsavecontent> will create a variable called "C" and place within it whatever content you put between the <cfsavecontent> and </cfsavecontent>.  Did you use 'variable="C"' attribute?

 

3 - cfheader does not generate a download message.

cfheader, if used properly, should prompt the user to either open or download and save the PDF.  If it isn't prompting, something is wrong with your code.  Check CFAdmin logs, and the browser console, to see if anything is being reported.

 

The cfsavecontent should be first, then the cfheader/cfcontent tags.  If you want a copy of the PDF, use cfmail to send it to your email address, but it must be used _after_ the cfsavecontent tags and _before_ the cfheader/cfcontent tags.  Anything after cfheader/cfcontent is ignored.

 

I'm doing a search of my projects to find example code.  I'll post it, here, when I find it.

 

V/r,

 

^ _ ^

ZNBAuthor
Inspiring
October 28, 2019

Bonjour,

Je n'ai pas eu le temps de m'en occuper plus tôt. Pardon !

J'ai suivi vos instructions et cela fonctione 😉

Voici mon code :

Hello,

I did not have time to deal with it sooner. Sorry !

I followed your instructions and it works 😉

Here is my code:

<cfset CRLF = chr (13) & chr (10) />
	<!--- Debut de la memorisation des informations dans C --->
		<cfset C="">
		<cfset C=C& "<p><html></p>" & CRLF>
		<cfset C=C& "<p><body></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& '<p align=center><IMG src="#DIRI#\Couv.jpg" border="0" align="top"></p>'& #CRLF#>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<cfdocumentitem type='pagebreak'/>">
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<cfdocumentitem type='pagebreak'/>">
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<h2 align=center>#Auteur#</h2>"& CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<h1 align=center>#Titre#</h1>"& CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<cfdocumentitem type='pagebreak'/>">
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& '<p align=center><IMG src="SoLivres.jpg" border="0" align="top"></p>'& #CRLF#>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p style='text-align: center;'><a href='http://info@solivres.com/'>www. solivres.com</a>"& #CRLF#>
		<cfset C=C& "<p style='text-align: center;'>Adaptation e-book #DateFormat(Now(),'DD-MM-YYYY')#"& #CRLF#>
		<cfset C=C& "<cfdocumentitem type='pagebreak'/>">
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p style='text-align: center;'>Le code de propri&eacute;t&eacute; intellectuelle interdit les copies ou reproductions destin&eacute;es&nbsp;&agrave;&nbsp; une utilisation collective.</p>" & CRLF>
		<cfset C=C& "<p style='text-align: center;'>Toute reproduction ou repr&eacute;sentation int&eacute;grale ou partielle faite par quelque proc&eacute;d&eacute;</p>" & CRLF> 
		<cfset C=C& "<p style='text-align: center;'>que ce soit sans le consentement des auteurs ou de ses ayants droit ou ayants cause est illicite et constitue</p>" & CRLF> 
		<cfset C=C& "<p style='text-align: center;'>une contre fa&ccedil;on, au terme des paragraphes 2 et 3 des articles 22_5,</p>" & CRLF>
		<cfset C=C& "<p style='text-align: center;'> L 122_4, L 335_2 et suivant du Code de la propri&eacute;t&eacute; intellectuelle.</p>" & CRLF>
		<cfset C=C& "<p style='text-align: center;'><br /></p>" & CRLF>
		<cfset C=C& "<p style='text-align: center;'>&copy; #Auteur#</p>" & CRLF>
		<cfset C=C& "<p style='text-align: center;'>D&eacute;pot l&eacute;gal : #DateFormat(Now(),'DD-MM-YYYY')#</p>" & CRLF>
		<cfset C=C& "<p style='text-align: center;'><u>Email : <a href='http://JeanMarcIRLES@hotmail.com/'>#Auteur#</a></u></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<cfdocumentitem type='pagebreak'/>">
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<p><br /></p>" & CRLF>
		<cfset C=C& "<h2>#ChapitresTitle#</h2>"& CRLF>
		<cfset C=C& "<p>#ChapitresTexte#</p>"& CRLF> 
		<cfset C=C& "<p></body></p>" & CRLF>
		<cfset C=C& "<p></html></p>" & CRLF>

	<!--- Construction et affichage du PDF ---> 
	<CFDOCUMENT
			FORMAT="PDF" 
			filename="#DIR#/MyPDF.pdf" 
			overwrite="Yes">
			#C# 
	</CFDOCUMENT> 
	
	<!--- Ecriture du PDF ---> 
	<CFFILE action="WRITE" file="#DIR#/MyPDF.pdf" output="#C#">  
	
	<CFMAIL TO="jmbusselet@hotmail.com" 
			FROM="marc75paris@outlook.fr" 
			type="HTML" 
			SUBJECT="voici une copie"> 
			<cfmailparam file = "MyPDF.pdf" content ="#C#"/> 
		Veuillez trouvez ci-joint le pdf demandé
	</CFMAIL> 
	

<cfheadername="Content-Disposition" value="attachment;filename=MyPDF.pdf">

<!--- Affichage PDF --->
<cfcontent type="application/PDF" file="#DIR#/MyPDF.pdf" deletefile="No"> 

</CFOUTPUT> 
	
<BR>

Deux choses ne fonctionnent pas :

pagebreak

Le PDF n'est pas "construit" !  il n'y a que mon code:-(

Two things do not work:

pagebreak

The PDF is not "built"! there is only my code 😞

 

WolfShade
Legend
October 28, 2019

CFDOCUMENTITEM pagebreak will not work because it is part of the string, and CF does not process it.  It just adds that code to the HTML that the PDF is generated from.

 

Glad you got it working, though.

 

V/r,

 

^ _ ^

WolfShade
Legend
October 4, 2019

Bonjour, ZNB,

 

Supprimez tous les hashtags ne figurant pas entre guillemets ou faisant partie d'une chaîne. <cfset CRLF = chr (13) & chr (10) /> (sauf si vous travaillez sur CF installé sur un système Linux, il ne s'agit que de chr (10).)

<cfset C & = "nouveau contenu" /> est identique à <cfset C = C & "nouveau contenu" />. Moins de code.

N'utilisez pas CFDOCUMENT pour ce faire. Vous devez d'abord l'enregistrer sur le disque, et cela ne fonctionne pas bien pour vous. Utilisez <cfsavecontent variable = "C"> VOTRE CONTENU ICI </ cfsavecontent>

Ce qui suit devrait être les dernières lignes de code sur le document .cfm. TOUT après il est ignoré.

 <cfheader name="Content-Disposition"
value="attachment;filename=MyPDF.pdf">
<cfcontent type="application/PDF"
variable="#C#" reset="yes">

 

This will make the PDF available to the user for download or opening.  Prior to the above code, use CFMAIL and attach the PDF to an email and send it to yourself.

 

<cfmail from="you" to="you" subject="New PDF created">

    <cfmailparam file="#C#" />

</cfmail>

 

V/r,

 

^ _ ^

 

BKBK
Community Expert
Community Expert
October 5, 2019
J'aime bien, WolfShade. 🙂
WolfShade
Legend
October 7, 2019
Merci, BKBK. 🙂
BKBK
Community Expert
Community Expert
September 26, 2019

Et aussi...

 

 

 

<!--- Debut de la memorisation des informations dans C --->
<cfset C= "">
<cfset C=C & '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'& #CRLF#>
<cfset C=C & '<html>'& #CRLF#>
<cfset C=C & '<head>'& #CRLF#>
<cfset C=C & '<title>Les aventures de l''extr&egrave;me</title>'& #CRLF#>
<cfset C=C & '</head>'& #CRLF#>
<cfset C=C & '<body>'& #CRLF#>
<cfset C=C & '<p style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<p style="text-align: center;"><br /></p>'& #CRLF#>
<cfset C=C & '<p style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<cfdocumentitem type="pagebreak"/>'>
<cfset C=C & '<p><br /></p>'& #CRLF#>
<cfset C=C & '<p style="text-align: center;">Albert Dupontel</p>'& #CRLF#>
<cfset C=C & '<p><br /></p>'& #CRLF#>
<cfset C=C & '<p><br /></p>'& #CRLF#>
<cfset C=C & '<h1 style="text-align: center;"><h1>Les aventures de l''extr&egrave;me</h1>'& #CRLF#>
<cfset C=C & '<p><br /></p>'& #CRLF#>
<cfset C=C & '<p><br /></p>'& #CRLF#>
<cfset C=C & '<p><br /></p>'& #CRLF#>
<cfset C=C & '<p><br /></p>'& #CRLF#>
<cfset C=C & '<cfdocumentitem type="pagebreak"/>'>
<cfset C=C & '<p><br /></p>' & #CRLF#>
<cfset C=C & '<p><br /></p>' & #CRLF#>
<cfset C=C & '<p style="text-align: center;"><br /></p>'& #CRLF#>
<cfset C=C & '<p style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<p style="text-align: center;">Le code de propri&eacute;t&eacute; intellectuelle interdit les copies ou reproductions destin&eacute;es&nbsp;&agrave;&nbsp; une utilisation collective.</p>' & #CRLF#>
<cfset C=C & '<p style="text-align: center;">Toute reproduction ou repr&eacute;sentation int&eacute;grale ou partielle faite par quelque proc&eacute;d&eacute;</p>' & #CRLF#>
<cfset C=C & '<p style="text-align: center;">que ce soit sans le consentement des auteurs ou de ses ayants droit ou ayants cause est illicite et constitue</p>' & #CRLF#>
<cfset C=C & '<p style="text-align: center;">une contre fa&ccedil;on, au terme des paragraphes 2 et 3 des articles 22_5,</p>' & #CRLF#>
<cfset C=C & '<p style="text-align: center;"> L 122_4, L 335_2 et suivant du Code de la propri&eacute;t&eacute; intellectuelle.</p>' & #CRLF#>
<cfset C=C & '<p style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<p style="text-align: center;">&copy; Albert Dupontel</p>' & #CRLF#>
<cfset C=C & '<p style="text-align: center;">D&eacute;pot l&eacute;gal : #DateFormat(Now(),"YYYY-MM-DD")#</p>' & #CRLF#>
<cfset C=C & '<cfdocumentitem type="pagebreak"/>'>
<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<p class="reference" style="text-align: center;">Adaptation e-book : #DateFormat(Now(),"YYYY-MM-DD")#</p>' & #CRLF#>
<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<p class="reference" style="text-align: center;"><u><a href="http://Abertdupontel@hotmail.com/">Abert Dupontel</a></u></p>' & #CRLF#>
<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<p class="reference" style="text-align: center;"><br /></p>' & #CRLF#>
<cfset C=C & '<cfdocumentitem type="pagebreak"/>'>
<cfset C=C & '<h2>Avertissement</h2>'& #CRLF#>
<cfset C=C & 'Ce livre raconte une enquête policière étrange. C’est aussi une histoire romancée de mes ascendants. Julie de Bozonnier de Vaumane a réellement vécu. Elle est mon arrière-grand-mère paternelle.
Tous les événements historiques relatés dans les pages que vous allez lire sont réels. Les personnages ont existé, ainsi que les lieux. Bien sûr les dialogues sont inventés, les situations imaginées, les sentiments romancés.
'& #CRLF#>
<cfset C=C & '</body>'& #CRLF#>
<cfset C=C & '</html>'& #CRLF#>

<!--- Construction et écriture du PDF --->
<CFDOCUMENT format="PDF"
filename="MyPDF.pdf"
overwrite="Yes">
<cfoutput>#C#</cfoutput>
</CFDOCUMENT>

<cfheader name="Content-Disposition"
value="attachment;filename=MyPDF.pdf">
<cfcontent type="application/PDF"
file="#expandpath('MyPDF.pdf')#"
deletefile="YES"> <!--- Efface le fichier --->

<!---  N'efface pas le fichier --->
<!---
<cfheader name="Content-Disposition"
value="attachment;filename=MyPDF.pdf">
<cfcontent type="application/PDF"
file="#expandpath('MyPDF.pdf')#"
deletefile="NO">
--->

 

 

ZNBAuthor
Inspiring
September 30, 2019

Bonjour,

J'ai essayé tout ce que vous m'avez conseillé.

Malheureusement, j'ai le même message.

Pas de changement !

Merci pour votre aide

 

Hello,

I tried everything you advised me.

Unfortunately, I have the same message.

No change !

Thanks for your help

 

BKBK
Community Expert
Community Expert
September 30, 2019
What message?
BKBK
Community Expert
Community Expert
September 26, 2019

l'extrème

devient

l''extr&egrave;me

(deux fois)

 

Donc

...
<cfset C=C & '<title>Les aventures de l''extr&egrave;me</title>'& #CRLF#>
...
<cfset C=C & '<h1 style="text-align: center;"><h1>Les aventures de l''extr&egrave;me</h1>'& #CRLF#>
...

WolfShade
Legend
September 25, 2019

Bonjour, ZNB.

 

Tout d’abord, vous n’avez pas à enregistrer le contenu dans une chaîne comme vous le faites. Utilisez CFSAVECONTENT, placez le code HTML entre les balises d'ouverture et de fermeture et utilisez l'attribut variable = "C" dans la balise d'ouverture. C'est beaucoup plus facile à faire et à lire. 🙂

 

First of all, you do not have to save the content into a string as you are doing. Use CFSAVECONTENT, place the HTML between the opening and closing tags, and use the variable="C" attribute in the opening tag. It is much easier to do, and to read. 🙂

 

 

<cfsavecontent variables="C">Place your HTML here, and access via #C#.</cfsavecontent>

 

 

OU, selon la page d'aide de CFDOCUMENT, vous pouvez simplement placer le code HTML entre les balises cfdocument d'ouverture et de fermeture.

 

OR, according to the CFDOCUMENT help page, you can just place the HTML between opening and closing cfdocument tags.

https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-d-e/cfdocument.html

 

De plus, dans la balise CFSET, à moins que vous placiez une variable CF dans les guillemets, vous n’avez pas besoin des hashtags. Votre & # CRLF #> peut donc être juste & & CRLF> Utiliser les hashtags en dehors d’une chaîne peut ralentir votre site ou application.

 

Also, within the CFSET tag, unless you are placing a CF variable within the quotes, you don't need the hashtags, so your & #CRLF#> can just be & CRLF> Using the hashtags outside of a string can slow down your site or application.

 

Le code que vous fournissez ressemble à celui que vous essayez de créer un PDF, puis enregistrez-le au format PDF. Je pense que la méthode la plus simple consiste à utiliser CFSAVECONTENT pour créer le contenu, puis à utiliser CFFILE pour l'enregistrer au format PDF directement, sans utiliser CFCONTENT / CFHEADER. CFCONTENT et CFHEADER sont utilisés lorsqu’un fichier est présenté à l’utilisateur pour être sauvegardé ou ouvert dans le navigateur, et tout ce qui suit est ignoré.

 

The code you are providing looks like you are trying to create a PDF, then save it as a PDF. I think the easiest method is to use CFSAVECONTENT to create the content, then use CFFILE to save it as a PDF, directly, without using the CFCONTENT/CFHEADER. CFCONTENT and CFHEADER are used when presenting a file to the user to either save or open in browser, and anything after them is ignored.

 

HTH,

 

^ _ ^