0

我正在使用 pdfmake 让用户填写表格,然后从该表格中获取数据并将其转换为 PDF。但问题是当用户输入长文本时,文本会离开页面。

我已经尝试过设置样式来证明这一点,但这似乎不起作用。

这是我的代码:

<!doctype html>
<html lang='en'>

<head>
 <meta charset='utf-8'>
 <title>my first pdfmake example</title>
 <script src='pdfmake.min.js'></script>
 <script src='vfs_fonts.js'></script>
</head>

<body>

<input type="text" id="test" name="test">
<textarea id="z" cols="10" rows="5" wrap="hard"></textarea>

<button onclick="pdf()">generate</button>
<script>

    // open the PDF in a new window
    function pdf() {
        var x = document.getElementById("test").value
        var z = document.getElementById("z").value

        var docDefinition = {

            content: [

                {
                    image: 'sampleImage.png',
                },

                {  ul: [x] },
                {
                    image: 'sampleImage.png'
                },

                {

                    ul: [
                           'Item 1',
                           'Item 2',
                           'Item 3',
                        {
                            text: z,
                            bold: true,
                            alignment: 'justify'
                        },
                   ],

                }
                ],

            styles: {
                header: {
                    fontSize: 18,
                    bold: true,
                    alignment: 'justify'
                }
            }
        };
        //alert(x);
        pdfMake.createPdf(docDefinition).open();
    }
</script>
</html>

错误:

在图像中,您可以看到输入长文本离开屏幕。

在此处输入图像描述

无论如何解决这个问题,无论用户输入的文本多长时间都不会离开屏幕。它进入下一行?

4

1 回答 1

1

正如@jthones 2 月 18 日在https://github.com/bpampuch/pdfmake/issues/204所说,pdfmake永远不会断词,它只会在你有空格或标点符号时才会断。

在这行下面,我附上了一个简单的代码,您可以直接将其粘贴到pdfmake 操场上以进行尝试。您会看到只有空格或标点符号才能满足您的需求。

祝你好运!

var dd = {
    content: [
        'First paragraph',
        'Another paragraph, this time a little bit longer to make sure, this line will be divided into at least two lines',
        {
            ul: [
                'Item 1',
                'Item 2',
                'Item 3',
                {
                    text: 'thisisatestthisisatestthisisatestthisisatest.thisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatest',
                    bold: true,
                    alignment: 'justify',
                    margin: [10,10,10,10],
                    width:90
                },
            ],
        },
        {
            text: 'thisisatest.thisisatestthisisatest.thisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatest',

            alignment: 'justify',
            margin: [0,190,10,80],
            width:90
        },
        {
            columns: [
                {
                    width:90,
                    text: 'thisisatest.thisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatestthisisatest!'

                }, 
                {
                    width: '*',
                    text: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Malit profecta versatur nomine ocurreret multavit, officiis viveremus aeternum superstitio suspicor alia nostram, quando nostros congressus susceperant concederetur leguntur iam, vigiliae democritea tantopere causae, atilii plerumque ipsas potitur pertineant multis rem quaeri pro, legendum didicisse credere ex maluisset per videtis. Cur discordans praetereat aliae ruinae dirigentur orestem eodem, praetermittenda divinum. Collegisti, deteriora malint loquuntur officii cotidie finitas referri doleamus ambigua acute. Adhaesiones ratione beate arbitraretur detractis perdiscere, constituant hostis polyaeno. Diu concederetur.'
                },
            ]
        }
    ]
}
于 2015-10-23T08:59:51.890 回答