Arabic in Smartform as a PDF output
Hi !
I am trying to create a .pdf file of a Smartform containing Arabic characters. I tried the code given in thread 'SX_OBJECT_CONVERT_OTF_PDF' but couldn't proceed much. Any help would be appreciated.
Cheers,
Ashok.
Hi Nkil,
This can be related to the FlateDecode compression described in SAP Note #843480.
The option 'FLATE_COMPR_OFF' needs to be set to 'On' via reprto RSTXPDF3 to turn off the FlateDecode compression.
After switching off the FlateDecode compression, create another PDF and see if the problem is resolved?
Regards,
Aidan
Similar Messages
-
Arabic language Smartform given Wrong Output format.
Hi,
I have developed Arabic Language smartform and tested in Print Privew mode working fine .
Problem with smartform Converted into PDF format and downloded to PC given wrong format.
Pl let me know any changes required.Sorry I do not have answer to your question. But can you share with me how you managed to display Arabic language in Smartform?
-
Change Email subject line for PDF output through smartforms
Dear all,
Currently i am working in Client ECC6.and we are useing The Smartform for Sending PDF document to the Customer.
Since recently email was setup so these invoices can be mailed directly to the customers, but we face the problem that when invoices are sent via email, the subject is like this.
From: Ramesh Babu mailto:ramesh_babu@abc
Sent: Wednesday, August 27, 2008 10:40 AM
To: Babu, Ramesh
Subject: New Invoice (mail/prnt).
Now the customer Requirement is that ,they dont want to disclose the Email address of the sender.
so they want to change the Form line and one hard codeed line always send to the customer like Ex below.
From: "Help Me Please'' .
This will aplicable for all sender ,if he send it by foreground or background as well.
so could you please sugest me how can i do that coding,or is there a user-exit to overrule the Standard SAP behaviour.
My Print program name: ZLB_BIL_INVOICE .
Regards,
MoniHi,
refer this,
you can change the subject line.
FORM docu_send_email USING pv_otfdata TYPE tsfotf
pv_emailid TYPE any
pv_formname TYPE any.
DATA: lv_filesize TYPE i,
lv_buffer TYPE string,
lv_attachment TYPE i,
lv_testo TYPE i.
DATA: li_pdfdata TYPE STANDARD TABLE OF tline,
li_mess_att TYPE STANDARD TABLE OF solisti1,
li_mtab_pdf TYPE STANDARD TABLE OF tline,
li_objpack TYPE STANDARD TABLE OF sopcklsti1,
li_objtxt TYPE STANDARD TABLE OF solisti1,
li_objbin TYPE STANDARD TABLE OF solisti1,
li_reclist TYPE STANDARD TABLE OF somlreci1,
li_objhead TYPE soli_tab.
DATA: lwa_pdfdata TYPE tline,
lwa_objpack TYPE sopcklsti1,
lwa_mess_att TYPE solisti1,
lwa_objtxt TYPE solisti1,
lwa_objbin TYPE solisti1,
lwa_reclist TYPE somlreci1,
lwa_doc_chng TYPE sodocchgi1.
CONSTANTS: lc_u TYPE char1 VALUE 'U',
lc_0 TYPE char1 VALUE '0',
lc_1 TYPE char1 VALUE '1',
lc_pdf TYPE char3 VALUE 'PDF',
lc_raw TYPE char3 VALUE 'RAW',
lc_ordform TYPE char15 VALUE 'ZORDCONFIRM_01',
lc_attachment TYPE char10 VALUE 'ATTACHMENT'.
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = lc_pdf
max_linewidth = 132
IMPORTING
bin_filesize = lv_filesize
TABLES
otf = pv_otfdata
lines = li_pdfdata
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
err_bad_otf = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT li_pdfdata INTO lwa_pdfdata.
TRANSLATE lwa_pdfdata USING ' ~'.
CONCATENATE lv_buffer lwa_pdfdata INTO lv_buffer.
CLEAR lwa_pdfdata.
ENDLOOP.
TRANSLATE lv_buffer USING '~ '.
DO.
lwa_mess_att = lv_buffer.
APPEND lwa_mess_att TO li_mess_att.
CLEAR lwa_mess_att.
SHIFT lv_buffer LEFT BY 255 PLACES.
IF lv_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
Object with PDF.
REFRESH li_objbin.
li_objbin[] = li_mess_att[].
DESCRIBE TABLE li_objbin LINES lv_attachment.
Object with main text of the mail.
lwa_objtxt = space.
APPEND lwa_objtxt TO li_objtxt.
CLEAR lwa_objtxt.
DESCRIBE TABLE li_objtxt LINES lv_testo.
Create the document which is to be sent
lwa_doc_chng-obj_name = text-008.
lwa_doc_chng-obj_descr = text-008.
lwa_doc_chng-sensitivty = lc_0.
lwa_doc_chng-obj_prio = lc_1.
lwa_doc_chng-doc_size = lv_testo * 225.
Pack to main body.
CLEAR lwa_objpack-transf_bin.
header
lwa_objpack-head_start = 1.
The document needs no header (head_num = 0)
lwa_objpack-head_num = 0.
body
lwa_objpack-body_start = 1.
lwa_objpack-body_num = lv_testo.
lwa_objpack-doc_type = lc_raw.
APPEND lwa_objpack TO li_objpack.
CLEAR lwa_objpack.
Create the attachment.
Fill the fields of the packing_list for the attachment:
lwa_objpack-transf_bin = gc_x .
header
lwa_objpack-head_start = 1.
lwa_objpack-head_num = 1.
body
lwa_objpack-body_start = 1.
lwa_objpack-body_num = lv_attachment.
lwa_objpack-doc_type = lc_pdf.
lwa_objpack-obj_name = lc_attachment.
lwa_objpack-obj_descr = text-008.
lwa_objpack-doc_size = lv_attachment * 255.
APPEND lwa_objpack TO li_objpack.
CLEAR lwa_objpack.
lwa_reclist-receiver = pv_emailid.
lwa_reclist-rec_type = lc_u.
lwa_reclist-notif_del = gc_x.
lwa_reclist-notif_ndel = gc_x.
APPEND lwa_reclist TO li_reclist.
IF li_reclist IS NOT INITIAL.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = lwa_doc_chng
put_in_outbox = gc_x
TABLES
packing_list = li_objpack
object_header = li_objhead
contents_bin = li_objbin
contents_txt = li_objtxt
receivers = li_reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDFORM. " DOCU_SEND_EMAIL -
How to download PDF output forms to presentation server without display
Hi All,
My requirement is to download the Sales Order forms and save it in local system.
I have created a custom program where I am passing a range of Sales Order no, Partner Function, Output type and Application as my input in selection screen.
Logic:
I am calling my Sales Order Abodeform using the FM: 'FP_FUNCTION_MODULE_NAME' and thereby I got the function module name of my form.
Then I am calling the FM:
Input to the FM:
ls_outputparams-nodialog = abap_true.
ls_outputparams-authority = 'X'.
ls_outputparams-getpdf = 'X'.
ls_outputparams-dest = 'LP03'.
ls_outputparams-nopreview = abap_true.
ls_outputparams-reqimm = abap_true.
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
ie_outputparams = ls_outputparams
EXCEPTIONS
cancel = 1
usage_error = 2
system_error = 3
internal_error = 4
OTHERS = 5.
followed by, CALL FUNCTION (FM name)
EXPORTING
archive_index = toa_dara
archive_parameters = arc_params
control_parameters = ls_control_param
mail_recipient = ls_recipient
mail_sender = ls_sender
output_options = ls_output_param
user_settings = ' '
is_nast = nast
is_vbdka = vbdka
is_addres = addr_key
IMPORTING
document_output_info = document_output_info
job_output_info = job_output_info
job_output_options = job_output_options
TABLES
it_vbdpa = tvbdpa "Item information
it_vbdpau = tvbdpau "Subitem numbers
it_vedpa = tkomservp "Contract Item Validity
it_vedka = tkomservh "Contract Header Validity
it_vedpn = tkomservpn "Contract Item Cancellation Data
it_vedkn = tkomservhn "Contract Header Cancellation DA
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
then , CALL FUNCTION 'FP_JOB_CLOSE'
IMPORTING
e_result = ls_result
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4.
then i am using the below FM to get the OTF data if any available.
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
IMPORTING
bin_filesize = lv_binfilesize
bin_file = lv_bin_file
TABLES
otf = ls_output_info-otfdata-> i am not sure which data to pass here. i am getting sy-subrc value as 4.
lines = lt_lines
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
err_bad_otf = 4
OTHERS = 5.
Now I dont no how to link the PDF forms to below method.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
bin_filesize = v_size
filename = D://x.pdf
filetype = 'BIN'
CHANGING
data_tab = lt_pdf.
Because in smartforms, we will convert the OTF output to PDF and that value is passed to GUI_DOWNLOAD FM as input (lt_pdf) , whereas in adobeforms the output itself is in PDF so i dont how to retreive the values from adobeforms and pass it to the above FM, so that I can save 'N' no. of sales order outputs in one PDF file.
Kindly help me out in this.
Thanks & Regards,
Karthikeyan G.Hi Vishnu,
I read the GUI_DOWNLOAD FM documentation, if I am trying to download binary type of file, It is mandatory to pass file size.
In my case, since I am having PDF file, so i don't no how to get the size of the pdf file.
As you said, if i use Convert_OTF FM, i don't have data to pass to the OTF and LINES tables.
I am having values of PDF in xstring format in ls_output1-pdf, which i got using the below FM.
CALL FUNCTION lv_funcname (FM name)
EXPORTING
/1bcdwb/docparams = ls_docparams
is_vbdka = vbdka
IMPORTING
/1bcdwb/formoutput = ls_output1
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4.
Kindly tell me what values i need to pass to the FM you mentioned in order to get the size of the file.
Thanks & Regards,
Karthikeyan G.
But still I am not sure, how the pdf output is coming for single input whereas if i give in a range, its failing. In single input, i am not giving binary file size still the output is coming.. but for range its not. Kindly help me out in this. -
Handling Non English language characters in PDF output
Hi All,
We have a requirement wherein we have to display an existing Smartform output in a PDF format.
We have used OTF to PDF conversion and displayed the PDF output in a container.
The issue is if certain characters are of non english language then the PDF is displaying these characters as special symbols.
The following string is getting dispalyed in the SmartForm as follows:
ОРЕНБУРГАВТОРЕМСЕРВИС_
The same string is displayed as follows in the PDF form :
Any pointers on how to handle such cases would be highly appreciated.
Thanks in advance.
regards
Chaitanya
9703019495Before calling the smartform, use the FM 'SSF_GET_DEVICE_TYPE' and get the device type based on the language.
For eg:
CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
EXPORTING
i_language = l_langu
IMPORTING
e_devtype = lwa_output_options-tdprinter.
Then you need to build the other control parameters like this:
Build control parameters.
lwa_control_parameters-getotf = c_charx.
lwa_control_parameters-device = 'PRINTER'.
lwa_control_parameters-preview = ''.
lwa_control_parameters-no_dialog = c_charx.
lwa_output_options-tddest = 'LOCL'.
Pass this lwa_output_options & lwa_control_parameters to output_options & control_parameters respectively in the Smartform FM.
This should ideally solve this issue.
Regards,
Amirth -
Pdf output of web dynpro does not display in cProjects
Hi,
We created a custom web dynpro which calls a smartform and gives a pdf output. This pdf output is seen on the cProjects portal under a customized tab.
The issue is, some users are able to see this pdf output on teh portal without any issues but others cannot view it in their system.
When the first time the users try to view this they get a prompt for downloading activex from adobe ag and on accepting this they are able to view the pdf. This prompt does not come up for other users and hence they are not able to view the pdf output of the web dynpro.
I checked the activex control settings in the IE options and they are all enabled. Still I do not get this pop up prompting for activex download.
Are there any settings in the internet explorer or the system which have to be done to view the pdf on the portal?
Any thougths on this will be extremely helpful.
Thanks,
SImmi
Edited by: Simmi Balakrishnan on Aug 12, 2008 8:22 PM
Edited by: Simmi Balakrishnan on Aug 12, 2008 8:24 PMHi Simmi,
two links might be useful to you:
My struggles with the Adobe Document Services
In this SDN blog, Consultant Achim Hauck provides tips for installing Interactive Forms.
My struggles with the Adobe Document Services in WAS6.40
SAP Interactive Forms by Adobe - Configuration Guides
SAP Interactive Forms by Adobe - Configuration Guides
Kind regards,
Angelika -
Converting Smartform spool to PDF results in loss of formatting
A smart form contains texts which is printed in bold.
This is clearly visible in both the preveiw and the prionout.
When we convert the output of a smartform into a PDF form the bold text is converted into a normal text for that font.
We are using a custom ZARIAL font in the smartstyle, and cannot tell if it is this Z font which the PDF conversion cannot support or if there is some setting which needs to be tweaked.
Kindly advice.Hi
ZARIAL font which you have created in the smartstyle and used in the smartform is no supporting while converting from OTF TO PDF.
[Output in PDF Format|http://help.sap.com/saphelp_nw70/helpdata/en/27/67443cc0063415e10000000a11405a/content.htm]
Regards,
Sravanthi -
Problem in PDF output in Chinese
Moved to correct forum. Please select the correct forum for your questions in future.
Hi,
My smartform contains english as well as chinese words.
Im tring to get PDF output from RSTXPDFT4 with spool request.Now if I login in ZH or EN and use RSTXPDFT4 to generate o/p in PDF, its not working, PDF is generating blank page with error. This is a unicode systems.
If my smarforms contailns only english then its OK.
So what to do please suggest.
Regards,
Kaushik
Edited by: Matt on Mar 12, 2009 10:52 AMMoved to correct forum. Please select the correct forum for your questions in future.
-
How to print an email with link on a pdf output
Hi,
I have requirement to print an email with link like mailto: ...at...com
I created a hyper link in my text element which created a <%W> ... </> tag. this message in this text element will be sent as a body of an email. I want to know to do the link like I mentioned above. Please let me know this is not clear.
Thanks,
Surya.Srinivas, Thanks for your quick reply.
This is smartform, and sending the output as pdf, except the the first page on which I have the text to be printed on the email body. In this email body text I have to display an email.
when user clicks on the email should open an outlook with the email id in the TO. Hope this helps.
Thank you,
Surya -
Smartform Printing in PDF format
Hi all,
I am looking to print standard SmartForms in PDF output.
I have printed a standard SmartForm to the spool. I convert the spool job to PDF using function module CONVERT_OTFSPOOLJOB_2_PDF. From this I get a new spool request titled "#####(original spool no) converted to PDF format".
My Basis team has create a new printer with device type PDF1 which I have used during this function module.
However this PDF spool shows up as odd characters. It also does not print as expected, again it prints the odd characters.
Obviously I'm missing something - does anyone have any suggestions?
Thanks-Within SP01, viewing the spool request, I see the following characters:
═䑆ⴱ⸳ഊ◢팍ਲ扪
祰攠⽔祰攱ഊ>
〰‱〰〠㄰〰‵>
‱〰〠〠〠〠>
㈰‷㈰‷㘰‷㘰>
⽁獣敮琠㜲>
ਯ䱡獴䍨慲′>
㔳㠠㔳㠠㠵> Etc....
EDIT: I note that when I submit this post, the characters change. I'm seeing 'symbols' mainly, some Asian characters (the form should be in English).
When printing, it comes out with something like:
%PDF-1.3
%aDuE
2 0 objtype /Type1
/BaseFont /H00 1000 1000 520 1000 74 1000 0 0 0 0
/CapHeight
/LastChar 255
%Charwid8 592 779 650 650. etc
/F002 6 0 R
Date=(0000000)
@SAP_OB End TOA_DARA
>>
endob00327 00000 n
and so on...
For now we would like to validate the PDF printing before modifying any new print programs to automate the process.
Thanks-
Message was edited by: Chad Carter
Message was edited by: Chad Carter -
Smartform (otf) as pdf and sending as email-attachment
Hello everybody,
when trying to convert a smartform to pdf and sending it with the FM 'SO_NEW_DOCUMENT_ATT_SEND_API1' i get an error when opening the pdf-file. It says ' a non identified Token w62.10 was found' and the pdf is all empty.
The problem seems to be somewhere between getting the pdf output data from the FM 'convert_otf' and trying to create a bin-object for the attachment.
Here is the code:
call function 'CONVERT_OTF'
EXPORTING
format = 'PDF'
* max_linewidth = 132
IMPORTING
bin_filesize = v_len_in
TABLES
otf = i_otf
lines = i_tline
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
others = 4.
* Fehlerhandling
if sy-subrc <> 0.
endif.
loop at i_tline.
translate i_tline using '~'.
concatenate wa_buffer i_tline into wa_buffer.
endloop.
translate wa_buffer using '~'.
do.
i_record = wa_buffer.
append i_record.
shift wa_buffer left by 255 places.
if wa_buffer is initial.
exit.
endif.
enddo.
* Attachment
refresh:
i_reclist,
i_objtxt,
i_objbin,
i_objpack.
clear wa_objhead.
i_objbin[] = i_record[].
******* Create Message Body
**** Title and Description
wa_doc_chng-obj_name = 'smartform'.
wa_doc_chng-expiry_dat = sy-datum + 10.
wa_doc_chng-obj_descr = 'smartform'.
wa_doc_chng-sensitivty = 'F'.
* wa_doc_chng-doc_size = v_lines_txt * 255.
**** Main Text
i_objtxt = 'test with pdf-Attachment!'.
append i_objtxt.
describe table i_objtxt lines v_lines_txt.
read table i_objtxt index v_lines_txt.
wa_doc_chng-doc_size = ( v_lines_txt - 1 ) * 255 + strlen( i_objtxt ).
clear i_objpack-transf_bin.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
i_objpack-body_num = v_lines_txt.
i_objpack-doc_type = 'RAW'.
append i_objpack.
**** Attachment
* (pdf-Attachment)
i_objpack-transf_bin = 'X'.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
* Länge des Attachment ermitteln
describe table i_objbin lines v_lines_bin.
read table i_objbin index v_lines_bin.
i_objpack-doc_size = ( v_lines_bin - 1 ) * 255 + strlen( i_objbin ).
i_objpack-body_num = v_lines_bin.
i_objpack-doc_type = 'PDF'.
i_objpack-obj_name = 'smart'.
i_objpack-obj_descr = 'test'.
append i_objpack.
clear i_reclist.
i_reclist-receiver = receiver.
i_reclist-rec_type = RECEIVER_TYPE.
append i_reclist.
if not receiver is initial.
call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = wa_doc_chng
put_in_outbox = 'X'
TABLES
packing_list = i_objpack
object_header = wa_objhead
CONTENTS_BIN = i_objbin
contents_txt = i_objtxt
receivers = i_reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
others = 8.Hi,
I just observed the following.
call function 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132 IMPORTING
bin_filesize = v_len_in
TABLES
otf = i_otf
lines = i_tline
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
others = 4.
i_objtxt = 'test with pdf-Attachment!'.
append i_objtxt.
describe table i_objtxt lines v_lines_txt.
read table i_objtxt index v_lines_txt.
wa_doc_chng-obj_name = 'smartform'.
wa_doc_chng-expiry_dat = sy-datum + 10.
wa_doc_chng-obj_descr = 'smartform'.
wa_doc_chng-sensitivty = 'F'.
wa_doc_chng-doc_size = v_lines_txt * 255.
clear i_objpack-transf_bin.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
i_objpack-body_num = v_lines_txt.
i_objpack-doc_type = 'RAW'.
append i_objpack.
Attachment
(pdf-Attachment)
i_objpack-transf_bin = 'X'.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
Länge des Attachment ermitteln
describe table i_objbin lines v_lines_bin.
read table i_objbin index v_lines_bin.
i_objpack-doc_size = v_lines_bin * 255 .
I just tried with your coding and then changed to the below coding.Now I am able to open the PDF in mail.
* Internal Table declarations
DATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
i_tline TYPE TABLE OF tline WITH HEADER LINE,
i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE,
i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,
* Objects to send mail.
i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
* Work Area declarations
wa_objhead TYPE soli_tab,
w_ctrlop TYPE ssfctrlop,
w_compop TYPE ssfcompop,
w_return TYPE ssfcrescl,
wa_doc_chng typE sodocchgi1,
w_data TYPE sodocchgi1,
wa_buffer TYPE string,"To convert from 132 to 255
* Variables declarations
v_form_name TYPE rs38l_fnam,
v_len_in LIKE sood-objlen,
v_len_out LIKE sood-objlen,
v_len_outn TYPE i,
v_lines_txt TYPE i,
v_lines_bin TYPE i.
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZZZ_TEST1'
importing
fm_name = v_form_name
exceptions
no_form = 1
no_function_module = 2
others = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
w_ctrlop-getotf = 'X'.
w_ctrlop-no_dialog = 'X'.
w_compop-tdnoprev = 'X'.
CALL FUNCTION v_form_name
EXPORTING
control_parameters = w_ctrlop
output_options = w_compop
user_settings = 'X'
IMPORTING
job_output_info = w_return
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
i_otf[] = w_return-otfdata[].
call function 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
IMPORTING
bin_filesize = v_len_in
TABLES
otf = i_otf
lines = i_tline
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
others = 4.
* Fehlerhandling
if sy-subrc <> 0.
endif.
loop at i_tline.
translate i_tline using '~'.
concatenate wa_buffer i_tline into wa_buffer.
endloop.
translate wa_buffer using '~'.
do.
i_record = wa_buffer.
append i_record.
shift wa_buffer left by 255 places.
if wa_buffer is initial.
exit.
endif.
enddo.
* Attachment
refresh:
i_reclist,
i_objtxt,
i_objbin,
i_objpack.
clear wa_objhead.
i_objbin[] = i_record[].
******* Create Message Body
**** Title and Description
i_objtxt = 'test with pdf-Attachment!'.
append i_objtxt.
describe table i_objtxt lines v_lines_txt.
read table i_objtxt index v_lines_txt.
wa_doc_chng-obj_name = 'smartform'.
wa_doc_chng-expiry_dat = sy-datum + 10.
wa_doc_chng-obj_descr = 'smartform'.
wa_doc_chng-sensitivty = 'F'.
wa_doc_chng-doc_size = v_lines_txt * 255.
**** Main Text
* wa_doc_chng-doc_size = ( v_lines_txt - 1 ) * 255 + strlen( i_objtxt )
clear i_objpack-transf_bin.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
i_objpack-body_num = v_lines_txt.
i_objpack-doc_type = 'RAW'.
append i_objpack.
**** Attachment
* (pdf-Attachment)
i_objpack-transf_bin = 'X'.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
* Länge des Attachment ermitteln
describe table i_objbin lines v_lines_bin.
read table i_objbin index v_lines_bin.
i_objpack-doc_size = v_lines_bin * 255 .
i_objpack-body_num = v_lines_bin.
i_objpack-doc_type = 'PDF'.
i_objpack-obj_name = 'smart'.
i_objpack-obj_descr = 'test'.
append i_objpack.
clear i_reclist.
i_reclist-receiver = '[email protected]'.
i_reclist-rec_type = 'U'.
append i_reclist.
call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = wa_doc_chng
put_in_outbox = 'X'
TABLES
packing_list = i_objpack
object_header = wa_objhead
CONTENTS_BIN = i_objbin
contents_txt = i_objtxt
receivers = i_reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
others = 8.
If your problem is solved,kindly close the thread and reward points.If you need clarifications,get back. -
Pdf output to be save on database
Hi
My requirement is to store pdf output from smartform or adobe form in database table.
what i did was
1. I have extracted OTF format of form.
2.Then converted it to PDF using function module Convert_OTF then i got binary data in the structure TLINE.
3.Now i am converting it into xstring to save it in data base table
but the problem is i am getting problem while converting xstring to binary(to get pdf from xstring ) ,i am not getting the original binary data in the structure TLINE only Column TDFORMAT got retrived i want TDLINE column also to be filled with respective data.
i am using function modules SCMS_BINARY_TO_XSTRING SCMS_XSTRING_TO_BINARY
any suggestions how to resolve problem.
Thanks
janakiram.I have a similar problem.
I created an abap report using adobe print form.
The result needs to be save into the DMS (document manager system)
What would be the steps to do it?
Actually the report is asking the user if he want it as preview or print to a report.
Here are the step I did so far:
1. FM 'FP_FUNCTION_MODULE_NAME'
2. FM 'FP_JOB_OPEN'
ie_outputparams = <to an empty structure>
3. FM fm_name <provided by the 'FP_FUNCTION_MODULE_NAME'
4. FM 'FP_JOB_CLOSE'
With those steps, I can see the report using preview button and print it.
But what I need is to save the report into the DMS.
Is there an easy way to do it or the following steps need to be done:
1. Save the report on disk ( I don't know how to do it )
2. Load it into the DMS
Il fact, if I can have an example on how to save an abap report using adobe print form into a network shared drive, that would solve my problem.
All suggestions would be highly appreciated.
Regards
dstj -
To convert smartform spool to pdf
Hi all,
I need to convert smartfom spool to pdf..
When i executed the smartform it is generating a spool number and
tsp01-rqdoctype = 'SMART'.
To convert Spool to PDF Iam using the following function module
'CONVERT_ABAPSPOOLJOB_2_PDF'
It is converting to pdf only if the document type is 'LIST'.
can any one suggest me how to convert smartform spool to pdf?
Regards
cnuHi
Refer to this link :
Re: smartform output to mail
Reward if useful
Thanks
Krushna -
Smartforms to file .PDF and download in Background
Hi
Actually i´m converting a smartforms in PDF file and doing a download in line , but i need to do the same in background.
How can i do it??
Regards
Gregory*& Report ZSMARTFORM_SPOOL_G
REPORT zsmartform_spool_g.
*************Types Declaration ****************************
TYPES : BEGIN OF gty_tab, " Spool Requests
rqident TYPE tsp01-rqident, " Spool request number
rqdoctype TYPE tsp01-rqdoctype, " Spool: document type
rqo1name TYPE tsp01-rqo1name, " TemSe object name
END OF gty_tab.
*********Work Area ****************************************
DATA: form_name TYPE rs38l_fnam, " Used to get the function module of Smartform
wa_outopt TYPE ssfcompop, " SAP Smart Forms: Smart Composer (transfer) options
gs_tab TYPE gty_tab. " Spool Requests
*******Internal Table Declarations ************************
DATA: gt_tab TYPE STANDARD TABLE OF gty_tab, " Spool Requests
gt_pdf TYPE STANDARD TABLE OF tline, " SAPscript: Text Lines
gt_spoolid TYPE tsfspoolid, " Table with Spool IDs
gt_otfdata TYPE ssfcrescl. " Smart Forms: Return value at end of form prnt
*********Variable Declarations ****************************
DATA: gv_bytecount TYPE i, "#EC NEEDED " PDF Byte Count
gv_file_name TYPE string, " File name
gv_file_path TYPE string, " File Path
gv_full_path TYPE string, " Path
gv_binfilesize TYPE i, " Bin File size
gv_rqident TYPE tsp01-rqident, " Spool request number
gv_name TYPE tst01-dname, " TemSe object name
gv_objtype TYPE rststype-type, " TemSe: Object type name
gv_type TYPE rststype-type. " TemSe: Object type name
START-OF-SELECTION.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZPDF_G'
IMPORTING
fm_name = form_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*Get Spool IDs
wa_outopt-tdnewid = 'X'.
wa_outopt-tddest = 'LP01'.
CALL FUNCTION form_name
EXPORTING
output_options = wa_outopt
user_settings = 'X'
IMPORTING
job_output_info = gt_otfdata
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*Assign the spool id
gt_spoolid = gt_otfdata-spoolids.
Generate spool and pdf for the output of the form
PERFORM sub_generate_spool_pdf.
END-OF-SELECTION.
*& Form sub_generate_spool_pdf
Generate Spool and PDF output
FORM sub_generate_spool_pdf .
DATA: ls_spoolid LIKE LINE OF gt_spoolid.
*----Get the Spool Number
CLEAR ls_spoolid.
READ TABLE gt_spoolid INTO ls_spoolid INDEX 1.
IF sy-subrc = 0.
gv_rqident = ls_spoolid.
ENDIF.
CLEAR gt_tab.
SELECT rqident rqdoctype rqo1name INTO TABLE gt_tab
FROM tsp01 WHERE rqident = gv_rqident.
IF sy-subrc = 0.
CLEAR gs_tab.
Get the TemSe: Object name into variable gv_name
READ TABLE gt_tab INTO gs_tab INDEX 1.
IF sy-subrc = 0.
gv_name = gs_tab-rqo1name.
ENDIF.
ENDIF.
CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
EXPORTING
authority = 'SP01'
client = sy-mandt
name = gv_name
part = 1
IMPORTING
type = gv_type
objtype = gv_objtype
EXCEPTIONS
fb_error = 1
fb_rsts_other = 2
no_object = 3
no_permission = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Check if temse object name type is 'OTF' or 'LIST'
IF gv_objtype(3) = 'OTF'.
PERFORM get_otf_spool_in_pdf.
ELSE.
PERFORM get_abap_spool_in_pdf.
ENDIF.
Generate F4 functionality from spool to pdf
PERFORM write_pdf_spool_to_pc.
ENDFORM. " sub_generate_spool_pdf
*& Form get_abap_spool_in_pdf
Generate the Spool number
FORM get_abap_spool_in_pdf .
REFRESH gt_pdf.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = gv_rqident
IMPORTING
pdf_bytecount = gv_bytecount
TABLES
pdf = gt_pdf
EXCEPTIONS
err_no_abap_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_destdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
OTHERS = 12.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " get_abap_spool_in_pdf
*& Form get_otf_spool_in_pdf
Generate OTF data from the Spool Number
FORM get_otf_spool_in_pdf .
REFRESH gt_pdf.
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = gv_rqident
IMPORTING
pdf_bytecount = gv_bytecount
TABLES
pdf = gt_pdf
EXCEPTIONS
err_no_otf_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_dstdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
OTHERS = 12.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " get_otf_spool_in_pdf
*& Form write_pdf_spool_to_pc
Generate PDF format
FORM write_pdf_spool_to_pc .
CALL METHOD cl_gui_frontend_services=>file_save_dialog
CHANGING
filename = gv_file_name
path = gv_file_path
fullpath = gv_full_path
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
----DOWNLOADING THE PDF DATA***
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = gv_binfilesize
filename = gv_full_path
filetype = 'BIN'
TABLES
data_tab = gt_pdf
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " write_pdf_spool_to_pc
Rewards if useful..............
Minal -
Layout to be generated as PDF output in a Spool
Hi ,
I am generating a layout using smartform. My requirement is layout has to be generated as PDF output in a Spool.
Please let me know how to write the code in my driver program to generate the spool or any FMs related to this.
Thanks in advance.
Regards,
Jyothi
<MOVED BY MODERATOR TO THE CORRECT FORUM>
Edited by: Alvaro Tejada Galindo on Jul 14, 2009 12:44 PMhi
use below sample code hope this may help u out
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
IMPORTING
fm_name = fname
CALL FUNCTION fname
IMPORTING
job_output_info = impdata..
i_itcoo[] = impdata-otfdata[].
CALL FUNCTION 'CONVERT_OTF_2_PDF'
EXPORTING
use_otf_mc_cmd = 'X'
IMPORTING
bin_filesize = binsize
TABLES
otf = i_itcoo
doctab_archive = idocs
lines = t_pdf
EXCEPTIONS
err_conv_not_possible = 1
err_otf_mc_noendmarker = 2
OTHERS = 3.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
CHANGING
filename = filename
path = path
fullpath = fullpath.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = bin
filename = fullpath
filetype = 'BIN'
TABLES
data_tab = t_pdf
EXCEPTIONS
OTHERS = 99.
thank you
surya
Maybe you are looking for
-
How to avoid the selection of a Parent node and its child node at a time?
Example: consider the below JTree. Parent1 ---->Parent2 -------->Child3 Parent3 ---->Parent4 My requirement : Parent1 and Parent3 can be selected at a time(using ctrl keys) Parent2 and Parent4 can be selected at a time Parent1 and Parent2 should not
-
Default Mail, Contacts, Calendars options
What are the default Mail, Contacts, Calendar options? Nephew was playing with phone and changed a bunch of settings. Curious what are the default settings since I liked it the way it was.
-
Open .lvm file while program is running
How do I open a .lvm file within my program? I've tried using the Open/Create/Replace File dialog with File Dialog specifying the path and I can get to the point to select the path, and it doesn't open the file. Solved! Go to Solution.
-
What adobe setting do I use?
I am having problems with recipients opening my scanned adobe files. When a recipient opens my file, the print is huge and it prints exactly as viewed. If they attempt to print a one page document, it prints a portion of the document and ends of bein
-
Why can't I download Adobe Flasher?
Why can't I download Adobe Flasher?