我目前正在尝试从 PHP 中静默使用 OO 将 ODT 转换为 PDF。这是代码:
function MakePropertyValue($name, $value,$osm){
$oStruct = $osm->Bridge_GetStruct("com.sun.star.beans.PropertyValue");
$oStruct->Name = $name;
$oStruct->Value = $value;
return $oStruct;
}
function odt2pdf($doc_url, $output_url){
$osm = new COM("com.sun.star.ServiceManager") or die ("Please be sure that OpenOffice.org is installed.\n");
$args = array(MakePropertyValue("Hidden",true,$osm));
$oDesktop = $osm->createInstance("com.sun.star.frame.Desktop");
$oWriterDoc = $oDesktop->loadComponentFromURL($doc_url,"_blank", 0, $args);
$aFilterData = array();
$aFilterData [0] = $osm->Bridge_GetStruct("com.sun.star.beans.PropertyValue");
$aFilterData [0]->Name = "SelectPdfVersion";
$aFilterData [0]->Value = 1;
$obj = $osm->Bridge_GetValueObject();
$obj->set("[]com.sun.star.beans.PropertyValue",$aFilterData );
$storePDF = array();
$storePDF[0] = $osm->Bridge_GetStruct("com.sun.star.beans.PropertyValue");
$storePDF[0]->Name = "FilterName";
$storePDF[0]->Value …Run Code Online (Sandbox Code Playgroud) 我有一个由chart.js创建的甜甜圈图,如下所示:
<div id="chartContainer" style="height: 320px; width: 320px">
<canvas id="hoursFEContainer"></canvas>
</div>
Run Code Online (Sandbox Code Playgroud)
我需要如下所示的chart.js(从npm下载):
require('chart.js');
Run Code Online (Sandbox Code Playgroud)
然后在一个相关的函数中,我实例化Chart.js如下:
var distinctFeeEarners = ['MEH', 'IHM'];
var totalHoursByFE = [0.8, 0.7];
var chartdata = {
labels: distinctFeeEarners,
datasets : [
{
label: 'Fee Earner',
data: totalHoursByFE
}
]
};
var ctx = $("#hoursFEContainer");
var donutChart = new Chart(ctx, {
type: 'doughnut',
backgroundColor:
['rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)'],
data: chartdata
});
Run Code Online (Sandbox Code Playgroud)
图表显示正确的数据,但是甜甜圈没有任何颜色吗?
怎么了?
编辑:除了愚蠢之外,backgroundColor还需要包含在数据集中而不是新的Chart中。没关系。
所以我在 jQuery 中有以下代码,我试图基本上匹配 MM/YYYY 格式的日期,其中 MM 是 1 到 12 之间的值,YYYY 是 1900 年代或 2000 年代的日期。我之前并没有真正使用过jQuery的测试功能。有人可以告诉我我的代码或正则表达式有什么问题吗?
var fieldValue = $(this).val();
if(!fieldValue.test(([1-9]|1[0-2])/^(19|20)\d\d)){
Errors = Errors + 1;
$(this).addClass("form_error");
}
Run Code Online (Sandbox Code Playgroud) 在迭代它们时,我一直试图获取所有已过滤行的隐藏列数据。
var table = $('#'+dataTableSelector).dataTable();
table.$('tr', {"filter":"applied"}).each( function () {
var row = this;
});
Run Code Online (Sandbox Code Playgroud)
显然row指的是数据表的TR实例;但是,如果我访问 TR 的子元素,这些元素仅包含相关行的可见列。
我想访问相关行的所有数据,但是当我尝试引用数据表或table.row(this).node()在每个函数中它不起作用 - 行不是函数。
如何获取应用过滤器的行的所有数据?
我已经成功构建了我的电子应用程序,它看起来工作得很好。
我使用节点模块fs来访问在我的应用程序中使用的文件,这是 Electron 的标准事务。这在开发环境中完全按照预期工作,甚至当我使用 asar 构建应用程序时,C:\Users\myApp\我也可以从构建的电子应用程序访问文件。
但是,当我创建安装程序并将应用程序放置在 @C:\Program Files(x86)\myApp\
fs.readFileSync
Run Code Online (Sandbox Code Playgroud)
以前在开发版本和构建版本中都运行良好C:\Users\myApp\,现在需要以管理员权限运行才能读取文件,否则会抛出错误。
有什么解释吗?
Electron 版本:1.8.4 平台:Windows 7
我了解电子上通常使用totoToPDF的方法是在main调用以下代码的过程中:
const {BrowserWindow} = require('electron')
const fs = require('fs')
let win = new BrowserWindow({width: 800, height: 600})
win.loadURL('http://github.com')
win.webContents.on('did-finish-load', () => {
// Use default printing options
win.webContents.printToPDF({}, (error, data) => {
if (error) throw error
fs.writeFile('/tmp/print.pdf', data, (error) => {
if (error) throw error
console.log('Write PDF successfully.')
})
})
})
Run Code Online (Sandbox Code Playgroud)
但是,我要实现的目标是BrowserWindow单击按钮即可从内部有效调用printToPDF 。
我从中了解到:https ://github.com/electron/electron/pull/1835/commits/1eba552a8d1ab4479824275f0e0a2cea9337bd8c已经向BrowserWindow公开了printToPDF,但是没有关于如何从网页中实际调用printToPDF的文档。
一个谷歌也没有透露一个例子。有什么线索吗?