我正在使用PDFMake来创建具有预定义文档定义的pdf.在我的旧离子1项目中,我将编码的字符串传递给print函数,该函数工作正常.这是旧离子1的代码
var dd = $scope.createDocumentDefinition();
$timeout(function () {
var pdf = pdfMake.createPdf(dd);
pdf.getBase64(function (encodedString) {
console.log(encodedString);
$ionicLoading.hide();
window.plugins.PrintPDF.print({
data: encodedString,
type: 'Data',
title: 'Print Document',
success: function () {
console.log('success');
},
error: function (data) {
data = JSON.parse(data);
console.log('failed: ' + data.error);
}
});
});
}, 1000);
Run Code Online (Sandbox Code Playgroud)
现在我正在将我的项目升级到Ionic 3,所以我尝试了相同的东西,但输出不同,这是我的新离子3代码.打印机打开但不是根据我的文档定义打印它只打印编码的字符串.
let printer_ = this.printer;
var dd = this.createDocumentDefinition();
var pdf = pdfMake.createPdf(dd);
pdf.getBase64(function (_encodedString) {
let options: PrintOptions = {
name: 'MyDocument'
};
console.log(JSON.stringify(pdf));
printer_.print(_encodedString, options).then((msg)=>{
console.log("Success",msg);
},(error) => {
console.log("Error", …Run Code Online (Sandbox Code Playgroud) 我正在使用Angular JS ui Grid
http://ui-grid.info/docs/#/tutorial/312_exporting_data_complex
我的要求是我要显示例如5列,但是当我导出PDF时,我不想导出某些列username.
我怎样才能做到这一点?
我正在使用 pdfMake 生成表格报告。一些报告非常宽,不适合标准页面宽度,即使在横向模式下也是如此。目前,当表格内容溢出页边距时,pdfMake 会切断表格内容。
当表格太宽时,我想分页,就像行溢出到下一页一样。
这可以使用pdfMake吗?
可以使用 pageBreakBefore 回调函数对此有所帮助吗?
谢谢
我正在使用PDFMake(一种变体PDFKit)使用实时数据库触发器在Firebase云功能上生成PDF.该函数从数据库获取所有相关数据,然后将其传递给应该生成PDF的函数.
所有这些都是使用Promises完成的.一切正常,直到实际生成PDF.
这是我的主要事件监听器中的代码:
exports.handler = (admin, event, storage) => {
const quotationData = event.data.val();
// We must return a Promise when performing async tasks inside Functions
// Eg: Writing to realtime db
const companyId = event.params.companyId;
settings.getCompanyProfile(admin, companyId)
.then((profile) => {
return quotPdfHelper.generatePDF(fonts, profile, quotationData, storage);
})
.then(() => {
console.log('Generation Successful. Pass for email');
})
.catch((err) => {
console.log(`Error: ${err}`);
});
};
Run Code Online (Sandbox Code Playgroud)
要生成PDF,这是我的代码:
exports.generatePDF = (fonts, companyInfo, quotationData, storage) => {
const printer = new PdfPrinter(fonts);
const …Run Code Online (Sandbox Code Playgroud) 是否有任何选项可以pdfmake将表格填充到整个页面?
演示https://jsfiddle.net/t2dbcb4t/
var docDefinition = {
pageMargins: [0, 0, 30, 0],
content: [{
table: {
widths: ['20%', '80%'],
body: [
[{
fillColor: '#ebebeb',
color: '#000',
text: 'first column',
},
[{
fontSize: 24,
fillColor: '#fff',
text: 'My name'
}, {
margin: [-5, 0, 0, 0],
table: {
widths: ['120'],
body: [
[{
fontSize: 11,
bold: true,
fillColor: '#ebebeb',
margin: [15, 3, 0, 3],
text: 'PROFILE'
}]
]
},
layout: 'noBorders'
}, {
text: [
'Lorem ipsum dolor sit …Run Code Online (Sandbox Code Playgroud)我正在使用 pdfmake 在客户端创建 PDF。我们有一个 WYSIWYG 编辑器,允许用户创建 pdf。然后将其解析为与 pdfmake 一起使用。
但是,我无法使用普通字体。该插件使用vfs_fonts.js在 PDF 上创建字体,默认为 Roboto。
我正试图让它与 Times New Roman 等公司合作。
我试图像这样改变文件:
window.pdfMake = window.pdfMake || {};
window.pdfMake.vfs = {
Roboto: {
"Roboto-Italic.ttf": "BASE 64 HERE",
"Roboto-Medium.ttf": "BASE 64 HERE",
"Roboto-Regular.ttf": "BASE 64 HERE"
},
TimesNewRoman: {
"Roboto-Italic.ttf": "BASE 64 HERE",
"Roboto-Medium.ttf": "BASE 64 HERE",
"Roboto-Regular.ttf": "BASE 64 HERE"
}
}Run Code Online (Sandbox Code Playgroud)
我使用了与 Roboto 相同的字体作为测试,但它仍然不起作用。这是我回来的错误
Uncaught Error: No unicode cmap for font
Run Code Online (Sandbox Code Playgroud)
下面是我的代码。您将此字符串粘贴到此处的pdf 测试器中并查看结果
Uncaught Error: No unicode …Run Code Online (Sandbox Code Playgroud)我在我的 Angular 4 应用程序中使用 pdfmake,它确实帮助我在客户端制作漂亮的 pdf 文档。但当我在 aot 构建后查看捆绑报告时,我有点担心。它给我的块增加了相当大的重量。有什么方法可以减少这种情况,例如仅导入所需的零件/服务/模块等?现在我正在导入它,如下所示
从 'pdfmake/build/pdfmake' 导入 { createPdf };
我可以使用 PDFMAKE 创建一张居中对齐(页面)的表格吗?
已定义对齐方式:样式和标签表中的“居中”:{}
{
table: {
width: "auto",
body: [
[
{ text: "PERÍODO", style: "tableHeader" },
{ text: "VOLUME (MW médios)", style: "tableHeader" }
],
["{7} a {8}", "{9}"],
["{10} a {11}", "{12}"],
["{13} a {14}", "{15}"]
],
alignment: "center"
}
}
Run Code Online (Sandbox Code Playgroud)
我希望一张桌子在页面的中心对齐。
我正在使用PDFMake动态创建 PDF 。
我有一个动态内容(不同数量的文本行)打印在标题上,因此我不能在其中放置固定值,pageMargins因为如果文本太大,它将被截断。
我曾尝试单独预渲染标题然后获取它的高度,但我觉得我在这里过度设计了问题......
你认为最好的解决方案是什么?
谢谢!