Did this article resolve your question/issue?



How to download PDF files from ABL code?


TitleHow to download PDF files from ABL code?
URL NameHow-to-download-PDF-files-from-ABL-code
Article Number000181130
EnvironmentProduct: OpenEdge
Version: 11.6.3
OS: All supported platforms
Question/Problem Description
How to download PDF files from ABL code?
Is there any command or method in Progress to download a PDF from an URL?
Steps to Reproduce
Clarifying Information
Need to download the file to OS file system, not to have it opened in the Web Browser
Error Message
Defect/Enhancement Number
In order to download a PDF file from a URL, the following sample code may be used:

USING OpenEdge.Core.*. 
USING OpenEdge.Net.HTTP.*. 
USING OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder. 

DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO. 
DEFINE VARIABLE oRequestBody AS WidgetHandle NO-UNDO. 
DEFINE VARIABLE oResponseMemptrEntity AS OpenEdge.Core.Memptr NO-UNDO. 
DEFINE VARIABLE oByteBucket AS OpenEdge.Core.ByteBucket NO-UNDO. 

oRequest = RequestBuilder:GET ("http://server:port/afile.pdf") 
:AddHeader("Authorization","Basic YT...YXI=") 

oResponse = ClientBuilder:Build():Client:Execute(oRequest). 

oByteBucket = CAST(oResponse:Entity,OpenEdge.Core.ByteBucket). 
oResponseMemptrEntity = oByteBucket:GetBytes(). 

COPY-LOB FROM oResponseMemptrEntity:Value TO FILE "c:\temp\afile.pdf".

Although the aim of this code is to show a way of downloading a PDF file from an ABL code, this code can be actually used to download other types of files as well. Use this code just as a sample and starting point.​
Last Modified Date4/6/2017 2:54 PM
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.