我在c#中重载了lessthan-operator,我想知道这是否需要检查null.您可以在下面找到一个示例:
public static bool operator <(MyClass x, MyClass y)
{
if (x == null && y == null)
{
return false;
}
if (x == null)
{
return true; //false?
}
if (y == null)
{
return false; //true?
}
return x.Value < y.Value;
}
Run Code Online (Sandbox Code Playgroud)
或者这是正确的:
public static bool operator <(MyClass x, MyClass y)
{
return x.Value < y.Value;
}
Run Code Online (Sandbox Code Playgroud)
我没有找到任何关于此的指示.但也许我错过了什么.
如何使用PDFBox"展平"PDF表单(删除表单字段但保留字段文本)?
快速执行此操作的方法是从acrofrom中删除字段.
为此,您只需要获取文档目录,然后获取acroform,然后从此acroform中删除所有字段.
图形表示与注释链接并保留在文档中.
所以我写了这段代码:
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
import org.apache.pdfbox.pdmodel.interactive.form.PDField;
public class PdfBoxTest {
public void test() throws Exception {
PDDocument pdDoc = PDDocument.load(new File("E:\\Form-Test.pdf"));
PDDocumentCatalog pdCatalog = pdDoc.getDocumentCatalog();
PDAcroForm acroForm = pdCatalog.getAcroForm();
if (acroForm == null) {
System.out.println("No form-field --> stop");
return;
}
@SuppressWarnings("unchecked")
List<PDField> fields = acroForm.getFields();
// set the text in the form-field <-- does work
for (PDField field : fields) {
if (field.getFullyQualifiedName().equals("formfield1")) {
field.setValue("Test-String");
} …Run Code Online (Sandbox Code Playgroud)