SPAN { font-family: "Courier New"; font-size: 10pt; color: rgba(0, 0, 0, 1); background: rgba(255, 255, 255, 1) }
.L0S31 { font-style: italic; color: rgba(128, 128, 128, 1) }
.L0S32 { color: rgba(51, 153, 255, 1) }
.L0S52 { color: rgba(0, 0, 255, 1) }
.L0S55 { color: rgba(128, 0, 128, 1) }
.L0S70 { color: rgba(128, 128, 128, 1) }

核心几个功能
*&      Form  PDF_PRINT
*&---------------------------------------------------------------------*
*通过地址获取文件流
*----------------------------------------------------------------------*

FORM FRM_GET_CONTENT USING URL TYPE STRING

                      CHANGING CONTENT TYPE XSTRING.



  DATA : HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT.

  CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL

    EXPORTING

      URL                = URL

    IMPORTING

      CLIENT             = HTTP_CLIENT

    EXCEPTIONS

      ARGUMENT_NOT_FOUND = 1

      PLUGIN_NOT_ACTIVE  = 2

      INTERNAL_ERROR     = 3

      OTHERS             = 4.

  IF SY-SUBRC = 0.

    HTTP_CLIENT->SEND( ).

    HTTP_CLIENT->RECEIVE( ).

    "CONTENT = HTTP_CLIENT->RESPONSE->TO_XSTRING( ).

    CONTENT = HTTP_CLIENT->RESPONSE->GET_DATA( ).

    HTTP_CLIENT->CLOSE( ).

  ENDIF.

ENDFORM.

SPAN { font-family: "Courier New"; font-size: 10pt; color: rgba(0, 0, 0, 1); background: rgba(255, 255, 255, 1) }
.L0S31 { font-style: italic; color: rgba(128, 128, 128, 1) }
.L0S32 { color: rgba(51, 153, 255, 1) }
.L0S33 { color: rgba(77, 166, 25, 1) }
.L0S52 { color: rgba(0, 0, 255, 1) }
.L0S55 { color: rgba(128, 0, 128, 1) }
.L0S70 { color: rgba(128, 128, 128, 1) }

*&---------------------------------------------------------------------*

*&      Form  PDF_PRINT

*&---------------------------------------------------------------------*

*       打印PDF

*----------------------------------------------------------------------*

FORM pdf_print  USING    p_xstring TYPE xstring.

  DATA: l_rqdestl TYPE rspolname,

        l_rqdest  TYPE rspopname.

  DATA: l_spoolid TYPE rspoid,

        l_msg     TYPE string.

  DATA: ls_outpars TYPE sfpoutpar.



  DATA: size TYPE i.

  DATA: total_size TYPE i.

  DATA: spoolid TYPE rspoid.

  DATA: copies TYPE rspocopies.

  DATA: lifetime.



  CALL FUNCTION 'FPCOMP_SHOW_DIALOG'

    CHANGING

      ie_outpar      = ls_outpars

    EXCEPTIONS

      cancel         = 1

      usage_error    = 2

      system_error   = 3

      internal_error = 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.

    LEAVE PROGRAM.

  ENDIF.



  size = xstrlen( p_xstring ).

  ADD size TO total_size.



  copies = ls_outpars-copies.

  lifetime = ls_outpars-lifetime.



  CALL FUNCTION 'ADS_CREATE_PDF_SPOOLJOB'

    EXPORTING

      dest              = ls_outpars-dest

      pages             = 0

      pdf_data          = p_xstring

      name              = ls_outpars-dataset

      suffix1           = ls_outpars-suffix1

      suffix2           = ls_outpars-suffix2

      copies            = copies

*     PRIO              = ps_op-

      immediate_print   = ls_outpars-reqimm

      auto_delete       = ls_outpars-reqdel

      titleline         = ls_outpars-covtitle

      receiver          = ls_outpars-receiver

      division          = ls_outpars-division

      authority         = ls_outpars-authority

      lifetime          = lifetime

*      "printer         = l_rqdestl

*      dest            = 'PDF3'

*      "pages           = 1

*      pdf_data        = p_xstring

*      immediate_print = 'X'    "如需立即打印,设置为X

*      auto_delete     = 'X'

    IMPORTING

      spoolid         = l_spoolid

    EXCEPTIONS

      OTHERS          = 1.



ENDFORM.                    " PDF_PRINT

ABAP PDF 打印的更多相关文章

  1. 开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)

    在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的 ...

  2. 基于iTextSharp的PDF操作(PDF打印,PDF下载)

    基于iTextSharp的PDF操作(PDF打印,PDF下载) 准备 1. iTextSharp的简介 iTextSharp是一个移植于java平台的iText项目,被封装成c#的组件来用于C#生成P ...

  3. NetSuite实现pdf打印中的条形码的功能

    2020-11-27 提起NS,在程序员这一块应该不怎么被人知道,算是比较小众的一门技术了,毕竟Netsuite兴起的时间算不上早,进入中国的时间更晚,除了从事这一块的程序员,可能都没有见过,恰好我是 ...

  4. .Net下的PDF打印

    简单研究了一下.Net下的PDF打印,一路发现了很多小坑. 第三方组件 这里使用的解析PDF的组件是mupdf,特点和C#调用在 这里 有介绍. 实现的功能 支持页面大小.边距.打印机选择.打印机dp ...

  5. 驰骋CCFlow开源工作流程引擎如何设置PDF打印

    前言 经常有驰骋CCFlow爱好者朋友提问关于打印相关问题.在这篇博文中大家介绍一下工作流引擎CCFlow的HTML打印和PDF打印,针对Java版本和.NET版本有不同的操作步骤,包括开关设置.水印 ...

  6. Java 创建PDF打印小册子

    概述 PDF打印小册子是指将PDF格式文档在打印成刊物前需要提前进行的页面排版,以便在打印后装订成册.下面以Java代码展示如何来实现.这里调用Free Spire.PDF for Java中的Pdf ...

  7. ABAP FORM打印转PDF/pdf 预览

    function ZSTXBC_SSFCOMP_PDF_PREVIEW. *"-------------------------------------------------------- ...

  8. 重命名PDF打印文件名

    Odoo系统默认打印出来的PDF文件都是以当前文档模型对象对应的模板文件名命名的,对用户来说,这样的命名很不友好. 我们希望能够将打印出来的文件名以单号命名,下面是实现这种目的的方法. 在report ...

  9. 两页pdf打印为一页,并且放大(打印英文pdf常用)

    多很英文书籍都是小书,若我们直接打印它的pdf会很厚,比如我要打印一本 thinking in C++,就要800+页.不如把两页打成一页.但是打成一页之后又太小了,需要放大.具体方法如下:   前提 ...

  10. pdf打印乱码问题

    问题: 使用Adobe Reader将一份pdf文件通过我的虚拟打印机输出后(输出的是中间文件,等同于EMF文件),查看的时候发现有时候是乱码.最简单的必现步骤: 1.使用Adobe Reader打开 ...

随机推荐

  1. @Data加在子类上,子类无法获取父类的属性

    1.问题描述 我的子类继承父类,并在子类上加了@Data注解.但在程序运行时,输出的结果只有我在子类中定义的属性,父类的属性没有输出. 这是我定义的子类: 这个是子类继承的父类: 这个是输出结果: 可 ...

  2. 掌握webpack(一)一张图让你明白webpack中output的filename、path、publicPath与主流插件的关系

    webpack的核心概念,放到2022年相信很多的小伙伴都已经非常清楚了.但是,对于webpack配置中的output.path.output.filename以及output.publicPath, ...

  3. 既然有MySQL了,为什么还要有MongoDB?

    大家好,我是哪吒,最近项目在使用MongoDB作为图片和文档的存储数据库,为啥不直接存MySQL里,还要搭个MongoDB集群,麻不麻烦? 让我们一起,一探究竟,了解一下MongoDB的特点和基本用法 ...

  4. 让你的手,不再抽筋,速度:修改mac的快捷键,以及鼠标滑动

    我是资深️windows系统爱好者️ 最近开始尝试使用MAC系统进行代码运行测试,从配置环境,到写博客,一天按下了n次的复制粘贴快捷键, 妈耶,感觉要抽筋了 呜呜--- 这简直无法忍,我决定修改这个快 ...

  5. C 语言输出100至200之间的质数(素数)

    题目描述 运行 C 程序,输出 100 至 200 之间的质数. 输入描述 无 输出描述 输出 100 至 200 之间的质数,每行输出一个质数,每个质数前面需要带有序号. 输出样例 解题思路 在&l ...

  6. jjq(友链:https://tg.hszxoj.com/user/475)

         

  7. C#开发PACS医学影像三维重建(十四):基于能量模型算法将曲面牙床展开至二维平面

    在医学影像领域中,将三维重建中的人体组织展开平铺至二维,用来研判病灶和制定治疗方案的重要手段之一, 它能够将立体曲面所包含的信息更为直观的展示到二维平面上,常用的情景包括: 牙床全景图.平铺血管.骨骼 ...

  8. 构造方法-JavaBean

    构造方法 当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值. 小贴士:无论你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法, 一旦自己定义了 ...

  9. 浅谈Python中的包

    浅谈Python中的包 Package的定义(你以为的) 你在很多的地方都能看到关于package的定义:在Python中在当前目录下有__init__.py文件的目录即为一个package. 嗯,包 ...

  10. 记一次 .NET 某游戏网站 CPU爆高分析

    一:背景 1. 讲故事 这段时间经常有朋友微信上问我这个真实案例分析连载怎么不往下续了,关注我的朋友应该知道,我近二个月在研究 SQLSERVER,也写了十多篇文章,为什么要研究这东西呢? 是因为在 ...