How can U render a VF (Visualforce ) page as PDF and have a button on the page that saves this PDF as an attachment ?
Apex Class Code:
public class PdfRender{
public Account acc {get;set;}
public List<Account> ListAcc {get;set;}
public PdfRender(){
ListAcc = new List<Account>();
acc = new Account();
ListAcc =[Select Name,AccountNumber from Account Limit 10 ];
}
// return 'pdf' if the parameter 'p' has been passed to the page, or null
public String getSelectRender() {
if(ApexPages.currentPage().getParameters().get('p') != null)
return 'pdf';
else
return null;
}
public PageReference RenderedAsPDF() {
PageReference pdf = Page.RenderedAsPdf;
pdf.getParameters().put('p','p');
public Account acc {get;set;}
public List<Account> ListAcc {get;set;}
public PdfRender(){
ListAcc = new List<Account>();
acc = new Account();
ListAcc =[Select Name,AccountNumber from Account Limit 10 ];
}
// return 'pdf' if the parameter 'p' has been passed to the page, or null
public String getSelectRender() {
if(ApexPages.currentPage().getParameters().get('p') != null)
return 'pdf';
else
return null;
}
public PageReference RenderedAsPDF() {
PageReference pdf = Page.RenderedAsPdf;
pdf.getParameters().put('p','p');
// Below code to Save Pdf in attachment
Blob pdf1 = pdf.getcontentAsPdf();
Document d = new Document();
d.FolderId = UserInfo.getUserId();
d.Body = Pdf1;
d.Name = 'pdf_file.pdf';
d.ContentType = 'application/pdf';
d.Type = 'pdf';
insert d;
return pdf;
}
}
}
}
Visualforce Page Code:
<apex:page showHeader="false" sidebar="false" renderAs="{!SelectRender}" controller="PdfRender" >
<apex:pageBlock title="Demo Pdf View">
<apex:pageBlockSection >
<apex:pageBlockTable value="{!ListAcc}" var="ac">
<apex:column value="{!ac.name}"/>
<apex:column value="{!ac.AccountNumber}"/>
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
<apex:form >
<apex:commandButton action="{!RenderedAsPDF}" value="PDF View" id="theButton"/>
</apex:form>
</apex:page>
<apex:pageBlock title="Demo Pdf View">
<apex:pageBlockSection >
<apex:pageBlockTable value="{!ListAcc}" var="ac">
<apex:column value="{!ac.name}"/>
<apex:column value="{!ac.AccountNumber}"/>
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
<apex:form >
<apex:commandButton action="{!RenderedAsPDF}" value="PDF View" id="theButton"/>
</apex:form>
</apex:page>
No comments:
Post a Comment