[ https://issues.apache.org/jira/browse/PDFBOX-5769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17817635#comment-17817635 ]
Axel Howind edited comment on PDFBOX-5769 at 2/15/24 11:05 AM: --------------------------------------------------------------- I have created a [PR|https://github.com/apache/pdfbox/pull/185] for this: * I have moved the classes from `org.apache.pdfbox.pdmodel.interactive.annotation.layout` to `org.apache.pdfbox.pdmodel.interactive` and changed the code to use these new classes instead of the ones in both `org.apache.pdfbox.pdmodel.interactive.annotation.layout` and `org.apache.pdfbox.pdmodel.interactive.form`. * I have removed the now empty package `org.apache.pdfbox.pdmodel.interactive.annotation.layout`. * I have removed the duplicated classes from `org.apache.pdfbox.pdmodel.interactive.form`. * I checked the differences between both versions of the classes. They had diverged in two aspects: * The PlainText constructor in `org.apache.pdfbox.pdmodel.interactive.form` checked if the supplied `textContent` was empty and if so just created an empty paragraph whereas the class in `org.apache.pdfbox.pdmodel.interactive.annotation.layout` would create a paragraph containing a single space. Creating an empty paragraph for the special case of en empty textContent looks reasonable to me, so I copied that code over. * The Paragraph classes have diverged in that the one in the forms package used some more sophisticated code for splitting lines. That looked good for me, so I copied that over too. In case the difference is important, please give some feedback so that I can update the pacth accordingly. But it looked rather like an improvement/bugfix was made to the code in the forms package and simply not applied to the other copy. was (Author: axh): I have created a PR for this: * I have moved the classes from `org.apache.pdfbox.pdmodel.interactive.annotation.layout` to `org.apache.pdfbox.pdmodel.interactive` and changed the code to use these new classes instead of the ones in both `org.apache.pdfbox.pdmodel.interactive.annotation.layout` and `org.apache.pdfbox.pdmodel.interactive.form`. * I have removed the now empty package `org.apache.pdfbox.pdmodel.interactive.annotation.layout`. * I have removed the duplicated classes from `org.apache.pdfbox.pdmodel.interactive.form`. * I checked the differences between both versions of the classes. They had diverged in two aspects: * The PlainText constructor in `org.apache.pdfbox.pdmodel.interactive.form` checked if the supplied `textContent` was empty and if so just created an empty paragraph whereas the class in `org.apache.pdfbox.pdmodel.interactive.annotation.layout` would create a paragraph containing a single space. Creating an empty paragraph for the special case of en empty textContent looks reasonable to me, so I copied that code over. * The Paragraph classes have diverged in that the one in the forms package used some more sophisticated code for splitting lines. That looked good for me, so I copied that over too. In case the difference is important, please give some feedback so that I can update the pacth accordingly. But it looked rather like an improvement/bugfix was made to the code in the forms package and simply not applied to the other copy. > Duplicated code in interactive.annotation.layout and interactive.form > --------------------------------------------------------------------- > > Key: PDFBOX-5769 > URL: https://issues.apache.org/jira/browse/PDFBOX-5769 > Project: PDFBox > Issue Type: Bug > Components: PDModel > Affects Versions: 4.0.0 > Reporter: Axel Howind > Priority: Minor > > I just stumbled upon lots of duplicated code in those two packages that I > think should be cleaned up. As that would mean users would have to change > imports, that would be a change for a major version. I will prepare a PR for > this to suggest some changes that you can review and comment. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org