open pdf in webbrowser control c# : Remove text from pdf reader control application platform web page html winforms web browser sg24625031-part2070

Chapter 14. End-to-end example 
293
FONT(416 12) 
RMTLOCNAME('127.0.0.1') 
USRDFNOBJ(QGPL/PDF *PSFCFG) 
TEXT('Device Description for PDF email') 
The DEVD, DEVCLS, TYPE, MODEL, LANATTACH, AFP, and FONT parameters 
are assigned values as if you were setting up an IPDS printer on your local area 
network: 
• PORT: Use a unique four-digit number to use as a TCP/IP Port number for 
each PDF virtual printer.
• RMTLOCNAM (Remote Location Name): Specify a loopback address or a 
name for a loopback address. A valid loopback address must have 127 as the 
first octet.
• USRDFNOBJ (User Defined Object): Specify the name and library of a PSF 
configuration object. The object type is *PSFCFG. If PSF configuration object 
does not exist when you create the device description, you receive a warning 
message. This is not a problem provided you create the object before you 
attempt to start the writer.
CRTPSFCFG  PSFCFG(QGPL/PDF) 
PDFGEN(*MAIL) 
PDFDEVTYPE(*IP40300)
PDFMULT(*YES)
PDFSENDER(MSHNIER)
PDFDTAQ(QGPL/PDFDTAQ) 
PDFMAPPGM(QGPL/EMAIL) 
TEXT('PSF configuration for PDF email')
• PSFCFG: PSF configuration object name. This name is referenced by the 
PDF device.
• PDFGEN (PDF Generation): This parameter tells the PDF Generation 
subsystem that you want to e-mail the PDF files.
• PDFDEVTYPE (PDF Device Type): This tells the PDF subsystem to use 
functions available on an IBM Infoprint 40, at 300 dots per inch. This is the 
recommended setting for this parameter.
• PDFMULT (Generate multiple PDF files): This tells the PDF subsystem to look 
for the embedded tag records and to generate multiple PDF e-mails 
accordingly.
• PDFSENDER (PDF Sender): This parameter identifies the user that is sending 
the e-mails. This user must be enrolled in the iSeries Directory. 
• PDFDTAQ (PDF Data Queue): Specifies the name of the data queue where 
PSF/400 will log the IPDS to PDF transformation completion notifications. This 
parameter is optional. See 14.6.1, “Using the PDF data queue” on page 301, 
for additional information.
• PDFMAPPGM (PDF Mapping Program): This tells the PDF subsystem to run 
the user to obtain the valid e-mail addresses.
This step is done as part of the one-time setup.
Remove text from pdf reader - delete, remove text from PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# developers to use mature APIs to delete and remove text content from PDF document
erase text in pdf document; erase text from pdf
Remove text from pdf reader - VB.NET PDF delete text library: delete, remove text from PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Programming Guide to Delete Text from PDF File
delete text from pdf file; pdf text watermark remover
294
iSeries Printing VI: Delivering the Output of e-business
14.5.3  Creating an e-mail exit program 
As described in 14.3.5, “Running the CRTAFPDTA command” on page 289, the 
CRTAFPDTA command causes index records that contain the customer number 
for each invoice to be inserted into the spooled file at the appropriate places. The 
e-mail exit program that is named in the PSF configuration object for the PDF 
transform uses this information to do a lookup on an iSeries database file that 
contains customer information, including their e-mail address.
You can find a description of the requirements for the input and output parameters 
and data structures for this program in Appendix E, “Supplemental Infoprint 
Server information” on page 343.
As an experienced RPG programmer at the hypothetical Super Sun Seeds 
Company, you choose to write the e-mail exit program in RPGLE. A sample 
program listing can be found in Appendix E.1, “E-mail exit program” on page 343. 
A sample C language program is also included in the
 Infoprint Server for iSeries 
User’s Guide
, G544-5775. 
Note that the e-mail Address field in the e-mail output information buffer may be 
defined as any length up to 16M. A length of 255 characters is adequate for the 
sample program. If you are sending each e-mail to multiple destinations you may 
need to make that field longer. 
The customer number that is found in the index records is passed into the 
program as the first six characters of the MAILTAG field. The program extracts 
those characters and performs a CHAIN operation to the LOOKUP file to retrieve 
the corresponding e-mail address. 
Figure 186 shows an example of the DDS used to create the LOOKUP physical 
file. 
Figure 186.  DDS for e-mail LOOKUP file
Figure 187 shows a sample of a few records from the e-mail LOOKUP file. Note 
that the e-mail addresses are surrounded by single quotes.
A                                      UNIQUE                      
A          R EMAILR                                                
A            CUSTNO         6A         COLHDG('CUSTOMER' 'NUMBER') 
A            COMP 
25A         COLHDG('COMPANY' 'NAME')    
A            PERSON        25A         COLHDG('CONTACT')           
A            EADDR
80A         COLHDG('E-MAIL' 'ADDRESS') 
A          K CUSTNO 
C# PDF remove image library: remove, delete images from PDF in C#.
to PDF; Merge PDF Files; Split PDF Document; Remove Password from Image Extract; VB.NET Write: Insert text into PDF; VB.NET Annotate: PDF Markup & Drawing. XDoc.Word
how to delete text in pdf document; how to edit and delete text in pdf file
VB.NET PDF remove image library: remove, delete images from PDF in
Remove PDF image in preview without adobe PDF reader component in VB.NET Except PDF text processing function, RasterEdge XDoc.PDF for .NET has image
pdf editor online delete text; how to erase text in pdf
Chapter 14. End-to-end example 
295
Figure 187.  Sample records in e-mail LOOKUP file
If the CHAIN operation to the LOOKUP file is successful, the Disposition 
(DISPOSTN) field is assigned a value of 1, indicating that the e-mail should be 
sent. The e-mail address from the LOOKUP file (EADDR) is moved into the 
ADDRESS field. A short message is built, including the company name and the 
contact person, and is moved into the MSGTEXT field. The program ends and 
these values are returned to the PDF writer and are used to generate the 
electronic mail and attachment.
If the lookup fails, control is transferred to the RPGLE subroutine called 
“Not_Found”. The disposition field is set to “0”, indicating that the e-mail is not to 
be sent. A CL program, NOTFOUND, is called. This program performs two 
actions:
1. It sends a message to a user that contains the customer number that failed 
and the name of the PDF file that contains that customer’s invoice.
2. It copies the PDF file from the temporary location in QDLS to a user-specified 
folder in the IFS.
This second step must be done because the e-mail PDF process cleans up all 
of the temporary files at the end of the job, regardless of whether they are 
successfully sent.
You can find a listing for the NOTFOUND program in E.1.2, “NOTFOUND program 
called by e-mail” on page 344. Figure 188 illustrates a sample message that is 
issued by the NOTFOUND program. Note the structure of the PDFFILE name. 
The syntax for this name is described in the 
Infoprint Server for iSeries User’s 
Guide
, G544-5775.
Figure 188.  Sample message issued by the NOTFOUND program
Display Physical File Member                               
File . . . . . . :   LOOKUP              Library  . . . . :   QGPL                
Member . . . . . :   LOOKUP              Record . . . . . :   1                   
Control  . . . . .                       Column . . . . . :   1                   
Find . . . . . . .                                                                
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8..
100Improved Printing Corp   Simon Hodkin             'simon_h@uk.ibm.com'   
136Organic Garden Supplies  Jacques Hofstetter       'jacques_h@ch.ibm.com' 
141Los Arboles Del Mundo    Mira Shnier              'mira_s@ca.ibm.com' 
154The Last Leaf            Bill Shaffer             'bill_s@us.ibm.com.'  
****** END OF DATA ****** 
Display Physical File Member                               
File . . . . . . :   LOOKUP              Library  . . . . :   QGPL                  
Member . . . . . :   LOOKUP              Record . . . . . :   1                     
Control  . . . . .                       Column . . . . . :   1                     
Find . . . . . . .                                                                  
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....
100Improved Printing Corp   Simon Hodkin             'simon_h@improved_prt.uk'   
136Organic Garden Supplies  Jacques Hofstetter       'jacques_h@organic.ch' 
141Los Arboles Del Mundo    Mira Shnier              'mira_s@los_arboles.ca' 
154The Last Leaf            Bill Shaffer             'bill_s@last_leaf.com.'  
****** END OF DATA ****** 
Display Messages                              
System:   BLDASL1       
Queue . . . . . :   MSHNIER                 Program . . . . :   WSMSGQ        
Library . . . :     QUSRSYS                 Library . . . :     AFP         
Severity  . . . :   00                      Delivery  . . . :   *HOLD         
Type reply (if required), press Enter.                                        
From  . . . :   QSPLJOB        06/17/01   17:48:37                          
Cannot find e-mail address for customer number    136 .  File              
/QDLS/PSF/092962/QPRTJOB/066591/MSHNIER/000004/OUTPUTMR/
06172001/000002.PDF not sent. 
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Able to remove a single page from adobe PDF document in VB.NET. Ability to remove consecutive pages from PDF file in VB.NET. Enable
delete text in pdf file online; how to erase text in pdf file
VB.NET PDF Password Library: add, remove, edit PDF file password
Remove password from PDF. Dim outputFilePath As String = Program.RootPath + "\\" Remove.pdf" ' Remove password in the input file and output to a new file.
how to remove text watermark from pdf; how to delete text from a pdf document
296
iSeries Printing VI: Delivering the Output of e-business
This step is done as part of the one-time setup.
14.5.3.1  Using USRDTA in the e-mail exit program
In this example, the exit program looks up the e-mail addresses based on the 
customer number passed to it in the index records. You may also find a similar 
exit program can be used to e-mail individual spooled files. 
The USRDFNDTA parameter in the printer file can be used to specify an e-mail 
address by entering a value for MAILTAG. This is described in Chapter 4, “Using 
the Infoprint Server for iSeries PDF transform” on page 103. However, this 
parameter may only be set when the printer file is created with CRTPRTF or by 
using an override printer file (OVRRPRTF). If the spooled file already exists, you 
cannot use the Change Spooled File Attributes (CHGSPLFA) command to 
change the value of USERDFNDTA. 
One solution is to change the USRDTA field for the spooled file. This field is 
passed as input to the e-mail exit program and can easily be set up as the search 
key for a lookup function to find the associated e-mail address.
14.5.4  Sending the spooled file as a PDF
You are now ready to send the spooled file as an e-mail. Move the spooled file to 
the output queue associated with the PDF device description and start the writer. 
Once the file arrives in the output queue for the PDF writer, all the conversion and 
e-mail tasks are done as defined in the PSF configuration object for that output 
queue. See 14.5.2, “Configuring a PDF device and PSF configuration object” on 
page 292.
Figure 189 shows an example of the file as it appears in the mailbox of a Lotus 
Notes user. 
Figure 189.  Sample Lotus Notes e-mail with PDF attachment
When you open the attached PDF file with Adobe Acrobat, you see the invoice 
from Super Sun Seeds as shown in Figure 190.
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
console application. Able to remove a single page from PDF document. Ability to remove a range of pages from PDF file. Free trial package
delete text from pdf online; pull text out of pdf
C# PDF Password Library: add, remove, edit PDF file password in C#
String outputFilePath = Program.RootPath + "\\" Remove.pdf"; // Remove password in the input file and output to a new file. int
pdf editor delete text; remove text from pdf acrobat
Chapter 14. End-to-end example 
297
Figure 190.  Opening the PDF attachment with Adobe Acrobat
Moving the spooled files to the output queue is a step that is included in the job 
that processes each spooled file.
14.5.5  Checking for non-delivery messages
The e-mail function of Infoprint Server for iSeries uses the Send Distribution 
(SNDDST) command to do the mailing. SNDDST in itself was originally designed 
for distribution using SNA Distribution Services (SNADS). However, its functions 
are mapped to TCP/IP Simple Mail Transfer Protocol (SMTP) and e-mail 
addressing. 
When an e-mail document is sent, and either the destination user name or the 
domain name is incorrect, a message is returned to the sender. The SNDDST 
command does not have a specific vehicle to check for these incoming 
messages, but they are accessible and should be monitored. 
The non-delivery messages are directed to the user who is designated as the 
sender of the e-mails. The sender name can be specified with the PDFSENDER 
parameter in the PSF configuration object used for the PDF function. Or it may be 
set in the USRDFNDTA in the spooled file itself by specifying a value for 
MAILSENDER. The spooled file setting overrides the PSF configuration object. 
One way to set up the sender to receive the non-delivery messages is to set up a 
Post Office Protocol Version 3 (POP3) client associated with their user ID. This is 
done by mapping the sender’s entry in the iSeries server directory to an SMTP 
address. An SMTP address is the address you see on the Internet 
(myname@domain)There are three steps: 
C# PDF Digital Signature Library: add, remove, update PDF digital
to PDF; Merge PDF Files; Split PDF Document; Remove Password from Image Extract; VB.NET Write: Insert text into PDF; VB.NET Annotate: PDF Markup & Drawing. XDoc.Word
delete text from pdf; how to delete text from pdf document
C# PDF bookmark Library: add, remove, update PDF bookmarks in C#.
Ability to remove and delete bookmark and outline entry.GetLocation()); Console.WriteLine("Text: " + entry.GetText NET Sample Code: Update PDF Document Outline
remove text from pdf; how to delete text in pdf preview
298
iSeries Printing VI: Delivering the Output of e-business
1. Enroll the sender in the system directory.
2. Associate the sender’s user ID with an SMTP user ID.
3. Configure a client to receive e-mail for that user.
Be aware that you are dealing with three different types of user identification 
here. There is the iSeries server user profile that is created with the CRTUSRPRF 
command. There is the SNADS user ID in the iSeries server directory that is 
created using ADDIRE. Finally there is the SMTP address used for Internet mail 
that is created using the WRKNAMSMTP command. To avoid confusion, we 
recommend you make all three of these names the same.
14.5.5.1  Enrolling the sender in the system directory
The sender’s user ID must be added to the iSeries server directory for the e-mail 
function to work. To direct the non-delivery messages to a POP3 client for the 
sender, use the Add Directory Entry (ADDDIRE) or Change Directory Entry 
(CHGDIRE) command. Then select option 
2
(System message store) for Mail 
service level and option 
3
(SMTP name) for Preferred address as shown in the 
example in Figure 191.
Figure 191.  CHGDIRE for sender to receive non-delivery notices
14.5.5.2  Associating the sender’s user ID with an SMTP address
The SMTP address for e-mail must be associated with the user’s SNADS address 
name that is in the system directory. While you are enrolling the user in the 
system directory, press F19 from the CHGDIRE panel as shown in Figure 191, 
which takes you to the Change Name for SMTP panel. An alternative is to enter 
WRKNAMSMTP on the command line. The panel shown in Figure 192 should 
appear the same either way.
Change Directory Entry         
User ID/Address . . . . :   MSHNIER   BLDASL1 
Type changes, press Enter.                                                     
Mail service level  . .   2                1=User index                
2=System message store      
4=Lotus Domino              
9=Other mail service        
For choice 9=Other mail service:                                           
Field name  . . . .                    F4 for list                 
Preferred address . . .   3                1=User ID/Address           
2=O/R name                  
3=SMTP name                 
9=Other preferred address   
Address type  . . . .                    F4 for list                 
For choice 9=Other preferred address:                                      
Field name  . . . .                    F4 for list                 
More... 
F3=Exit F4=Prompt F5=Refresh F12=Cancel F18=Display location details   
F19=Change name for SMTP           F22=Remove name for SMTP 
Chapter 14. End-to-end example 
299
Figure 192.  Associating an SMTP address to a user ID using WRKNAMSMTP
14.5.5.3  Configuring a POP3 client to receive the messages
There are many software products that can be used to act as a client to the 
iSeries POP3 server. These include clients such as Eudora or Netscape. The 
configuration steps naturally depend on each product’s individual interface. 
However, the information you must provide is basically the same. 
This example uses Netscape Mail. Identify the incoming mail server by selecting 
Edit-> Preferences-> Mail & Newsgroups-> Mail Servers. Then you see the 
Preferences panel (Figure 193).
Figure 193.  Netscape Mail Server Preferences
Click Add to define the incoming mail server to the address you previously 
defined for the e-mail sender. Figure 194 shows an example of the Mail Server 
Properties panel that appears.
Add Name for SMTP                              
System:   BLDASL1 
User ID/Address . . . . . :   MSHNIER   BLDASL1                                 
SMTP user ID  . . . . . . :   MSHNIER                                          
SMTP domain . . . . . . . :   BLDASL1.PENN.BOULDER.IBM.COM                     
SMTP route  . . . . . . . :                                                    
Press Enter to continue.                                                       
F3=Exit   F12=Cancel                 
300
iSeries Printing VI: Delivering the Output of e-business
Figure 194.  Netscape Mail Server Properties
The user name you enter here should match the iSeries user ID. When the 
sender retrieves mail, they are prompted for the iSeries password for that user ID. 
If you use this client to send electronic mail to other destinations via the iSeries 
server, you must set up the outgoing mail server information and other 
identification information. 
Figure 195 shows a portion of a returned e-mail that was sent to an incorrect 
domain. The format is slightly different if the domain name is correct, but the user 
name is wrong. Not shown here is the fact that the original e-mail is contained in 
this message further down the page, including the PDF attachment. 
Figure 195.  Returned e-mail message in Netscape
You should give some thought as to how you set up and manage the sender user 
ID for the PDF distribution function. If you set up your PSF Configuration object 
with the default value of PDFSENDER(*SPLFOWN), you may have to enroll many 
different users so they can monitor for the non-delivery messages. For 
business-critical applications, consider setting up a special user ID for the sender 
function and have one individual responsible for checking for messages and 
taking appropriate action, such as contacting the intended recipient and 
re-sending the document.
Chapter 14. End-to-end example 
301
For more information on using the iSeries server as an e-mail server, go to the 
iSeries Information Center on the Internet at: 
http://publib.boulder.ibm.com/pubs/html/as400/infocenter.html
Select V5R1-> Networking-> TCP/IP-> E-mail.
The configuration of the sender to send and receive e-mail is done only once 
during setup. 
14.6  Other maintenance tasks
The example provided in this chapter involves only the basic minimum coding 
required to produce the desired electronic mail. To implement this as a robust 
business solution, additional tasks must be included in the application. Some of 
these include:
• Building CL programs to automate the process
• Checking the data queue for the status of each of the PDF files
• Maintenance routines to add, change, and delete records in the LOOKUP file
• Cleanup of any temporary files created in the IFS or standard library structure 
14.6.1  Using the PDF data queue 
The IPDS to PDF process creates entries in a data queue object if you specify 
one in the PDFDTAQ parameter in the PSF configuration object. To use this 
function, the data queue must exist and have a minimum length of 752 
characters. Use the iSeries QRCVDTAQ API to read the entries. For more 
information on QRCVDTAQ, see the iSeries Information Center on the Internet 
(see the Web address in the previous section).
Using the data queue helps you identify other types of problems that may occur. 
For example, if you forget the single quotes on the e-mail address in the LOOKUP 
table, it is treated as an invalid address and the file is not sent. A return value of 
‘05’ is logged in the data queue.
The layout of the fields in the data queue are listed in E.2, “PDF data queue 
structure” on page 346.
14.7  An alternative to e-mail
There are situations for which it is more appropriate to post the PDF files on a 
Web site for users to retrieve rather than to have the files e-mailed directly. This 
approach is sometimes referred to as having the end user “Pull” the information 
rather than you “Push” it to them. 
In this case, you may choose to follow most of the steps described in this 
document. However, rather than e-mailing the final documents, you store them in 
the system IFS as stream files by specifying PDFGEN(*STMF). A Web server 
application posts the files as required. In this situation, the information in the data 
queue is useful. It can be used to match up the index information in the Mail Tag 
field to the path and name of the PDF file that is created in the IFS. 
302
iSeries Printing VI: Delivering the Output of e-business
You may also choose to store the files as stream files if you plan on using a 
different method to e-mail the PDF files. For example, you may want to integrate 
the PDF stream files in a Domino-based application.
14.8  One-time setup versus ongoing tasks
This chapter describes a number of steps that are needed to complete the task of 
converting an iSeries applications from a spooled file to an e-mail containing a 
PDF attachment. These tasks can be divided into two categories:
• One-time setup tasks
• Tasks to be repeated for each spooled file
To help in planning, the two types are summarized here.
14.8.1  One-time setup
You perform the following tasks once as part of the one-time setup of the e-mail 
function:
• Create or modify the Infoprint Designer project.
• Modify the printer file or change the CL to use the new form definition, page 
definition, and overlay.
• Modify the application program (if necessary) to generate data that can be 
used by the CRTAFPDTA index function.
• Modify the ICODED.FNT file in AFP Viewer if necessary.
• Check the output using the AFP Viewer.
• Enable OS/400 to send e-mail.
• Create the PDF printer device description and PSF Configuration object.
• Create the e-mail exit program.
• Enroll the sender in the iSeries server directory and create an SMTP address.
• Configure a POP3 client to receive the non-delivery messages.
• Create a data queue to capture status messages.
14.8.2  Repeated tasks
It is likely that you will want to build a CL program to manage the steps that will be 
repeated for each spooled file you are mailing using this process. The steps to 
incorporate in the program include:
• Creating a physical file to receive the output from the CRTAFPDTA command.
• Setting the default target directory for the CRTAFPDTA command using the 
CHGCURDIR command.
• Running the CRTAFPDTA command.
• Changing the OUTPUTMRG member name to a more meaningful name.
• Re-spooling the output using the PRTAFPDTA command.
• Moving the output to the PDF output queue.
• Monitoring for files not sent.
• Cleaning up any temporary files created during this process.
Documents you may be interested
Documents you may be interested