微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

合并文档 iText7

如何解决合并文档 iText7

我正在向现有的 pdf 添加文本。

到目前为止,我的代码会将文本添加文件中,但它删除了之前 pdf 上的原始内容,有谁知道如何解决这个问题?以便添加的文本在新页面上,而 pdf 的原始内容在另一个页面上。

import React,{useEffect} from 'react' 
import { Link } from 'react-router-dom'
import { usedispatch,useSelector } from 'react-redux'
import { Row,Col,ListGroup,Image,Button } from 'react-bootstrap'
import Alert from 'react-bootstrap/Alert'
import { addToLibrary} from '../actions/libraryActions'
import { removeFromLibrary} from '../actions/libraryActions'



function LibraryScreen({match,location,history}) {

const bookId = match.params.id
const qty = 1

const dispatch = usedispatch()

//to pull data from local storage and use
const library = useSelector(state => state.library)
const { libraryItems} = library


useEffect(() => {
    if (bookId) {
        dispatch(addToLibrary(bookId,qty))
    }
},[dispatch,bookId,qty])

const removeFromLibrary = (id) => {
    dispatch(removeFromLibrary(id))
}

return (
   <Row>
        <Col md = {8}>
            <h1>Library</h1>
            { libraryItems.length === 0 ? (
                <Alert variant = 'info'>
                    Your Library is Empty <Link to = '/'> Go Back </Link>
                </Alert>
             ) : (
                    <ListGroup variant = 'flush'>
                     {libraryItems.map( item =>(
                         <ListGroup.Item key = {item.book}>
                            <Row>
                                <Col md={6}>
                                 <Link to= {`/book/${item.book}`}>
                                  <Image src={item.image} alt={item.name} fluid rounded/>
                                   </Link>
                                </Col>
           
                                <Col>
                                <Button
                                    type='button'
                                    variant='light'
                                    onClick={() => removeFromLibrary(item.book)}>
                                        Remove From Library
                                </Button>
                                </Col>
                             </Row>
                         </ListGroup.Item>
                     ))}
                 </ListGroup>
             )} 
        </Col>
 </Row>
 )
}

export default LibraryScreen

解决方法

使用 PdfDocument pdfDoc = new PdfDocument(new PdfWriter(field1)),您将始终创建一个包含新内容的新文档。您现在忽略了原始内容。您必须以戳记模式打开 PDF。

参考 iText API:https://api.itextpdf.com/iText7/java/7.1.4/com/itextpdf/kernel/pdf/PdfDocument.html

构造函数和描述

PdfDocument(PdfReader reader) 以阅读模式打开 PDF 文档。

PdfDocument(PdfReader reader,DocumentProperties properties) 以阅读模式打开 PDF 文档。

PdfDocument(PdfReader reader,PdfWriter writer) 以图章模式打开 PDF 文档。

PdfDocument(PdfReader reader,PdfWriter writer,StampingProperties properties) 以图章模式打开 PDF 文档。

PdfDocument(PdfWriter writer) 以书写模式打开PDF文档。

PdfDocument(PdfWriter writer,DocumentProperties properties) 以书写模式打开PDF文档。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。