从SAPUI5打印计划日历

2020-08-30 11:45发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在尝试打印计划日历,但是CSS中有一些问题(例如间隔时间的位置)。

这是控制器中的代码

 onPrint:function(){
   var $ domTarget = this.byId(" PC1")。$()[0],
   sTargetContent = $ domTarget.innerHTML,
   sOriginalContent = document.body.innerHTML;
   document.body.innerHTML = sTargetContent;
   window.print();
   document.body.innerHTML = sOriginalContent;
 } 

谢谢

此致

Dieu

(36.8 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在尝试打印计划日历,但是CSS中有一些问题(例如间隔时间的位置)。

这是控制器中的代码

 onPrint:function(){
   var $ domTarget = this.byId(" PC1")。$()[0],
   sTargetContent = $ domTarget.innerHTML,
   sOriginalContent = document.body.innerHTML;
   document.body.innerHTML = sTargetContent;
   window.print();
   document.body.innerHTML = sOriginalContent;
 } 

谢谢

此致

Dieu

(36.8 kB)
付费偷看设置
发送
7条回答
1楼-- · 2020-08-30 12:29

嗨Dieu,

我相信您也需要应用UI5 CSS。

尝试添加样式表

此致

Tri

SC_Yao
2楼-- · 2020-08-30 12:31

Hi Tri,

我按照您的说明将css应用于文档,但是它仍然不起作用....

 var $ domTarget = this.byId(" PC1")。$()[0],
 sTargetContent = $ domTarget.innerHTML,
 sOriginalContent = document.body.innerHTML;
//document.write('');
 document.querySelector(" head")。insertAdjacentHTML(" beforeend"," ");
 document.body.innerHTML = sTargetContent;
 window.print();
 document.body.innerHTML = sOriginalContent; 

谢谢

致谢

SAP小菜
3楼-- · 2020-08-30 12:30

沿着日历控件的html DOM,您需要获取所有用于在浏览器上呈现dom的SAP标准样式表文件。

谢谢

Viplove

野沐沐
4楼-- · 2020-08-30 12:30

如何打印..您可能会获取日历控件的DOM并在新的浏览器中将其作为html页面打开,而不是打印..正确? 还是就像您正在直接打印页面? ..如果要在除dom之外的其他浏览器窗口中打开html,则还需要获取SAP标准样式表..并且要查看打印预览..您可能不会在预览中看到背景色 请查看以下stackoverflow供稿: https://stackoverflow.com/questions/14987496/background-color-not-showing-in-print-preview

SAP浪
5楼-- · 2020-08-30 12:14

你好,

不幸的是,当您使用" window.print()"打印页面时,它的打印效果就像任何页面一样(请尝试按ctrl + p打印此页面,它看起来很丑)。

您所能做的就是使用html2canvas库,它仍然很奇怪,但是可能比您在那里得到的要好。

为此,创建一个文件并将html2canvas库复制/粘贴为以下文件:

//代码粘贴,不用担心错误
 sap.ui.define([],function(){
 返回html2canvas;
 });
 

在视图控制器中添加:

 sap.ui.define([
 ...,
 " myproj/MyProject/html2canvas"
 ],函数(...,html2canvas){
 ...
 onPrint:function(){
   var $ domTarget = this.byId(" PC1")。$()[0],
   sTargetContent = $ domTarget.innerHTML,
   sOriginalContent = document.body.innerHTML;
   document.body.innerHTML = sTargetContent;
 html2canvas(document.body).then(function(canvas){
 document.body.innerHTML ="";//清除html
 document.body.appendChild(canvas)//在页面上绘制画布
 window.print();//打印
 document.body.innerHTML = sOriginalContent;//将原始内容返回页面
 });
 }
 ...
 }
 

它不是完美的,但比纯HTML更好(而且很有趣)。

希望有帮助,

关于

蓋茨
6楼-- · 2020-08-30 12:15

实际上,我使用window.print()(Ctrl + P)。 如果找到了,我将分享我的解决方案:

此致。

一周热门 更多>