Ich habe Funktionalität implementiert, um den Layer aus PDF zu löschen, aber das Problem ist, dass der Inhalt, den ich auf dem Layer gezeichnet habe, nicht gelöscht wird. Hier ist der Code, den ich benutze, um den Layer zu löschen:Wie lösche ich eine optionale Inhaltsgruppe zusammen mit ihrem Inhalt von pdf mit pdfbox?
PDDocumentCatalog documentCatalog = doc.getDocumentCatalog();
PDOptionalContentProperties ocgProps = documentCatalog.getOCProperties();
PDOptionalContentGroup ocg = ocgProps.getGroup(markupLayerName);
COSDictionary ocgsDict = (COSDictionary)ocgProps.getCOSObject();
COSArray ocgs = (COSArray)ocgsDict.getItem(COSName.OCGS);
int indexToBeDeleted = -1;
for (int index = 0; index < ocgs.size(); index++)
{
COSBase o = ocgs.get(index);
COSDictionary ocgDict = ToCOSDictionary(o);
if (ocgDict.getString(COSName.NAME) == markupLayerName)
{
indexToBeDeleted = index;
break;
}
}
if (indexToBeDeleted >= 0)
{
cgs.remove(indexToBeDeleted);
ocgsDict.setItem(COSName.OCGS, ocgs);
documentCatalog.setOCProperties(new PDOptionalContentProperties(ocgsDict));
}
Hat Ihre andere Frage diese Frage nicht beantwortet? –