Frage

Ich muss einen Text ausblenden, indem ich eine neue Ebene über den Text hinzufügen muss, den ich ausblenden muss.

public void ReplacePDFText(string strSearch, StringComparison scCase, string strSource, string strDest)
{
    PdfContentByte pCont = null;

    if (File.Exists(strSource)) {
        PdfReader pdfFileReader = new PdfReader(strSource);
        using (PdfStamper psStamp = new PdfStamper(pdfFileReader, new FileStream(strDest, FileMode.Create))) {
            for (int intCurrPage = 1; intCurrPage <= pdfFileReader.NumberOfPages; intCurrPage++) {
                LocTextExtractionStrategy Strategy = new LocTextExtractionStrategy();
                pCont = psStamp.GetUnderContent(intCurrPage);
                Strategy.UndercontentCharacterSpacing = pCont.CharacterSpacing;
                Strategy.UndercontentHorizontalScaling = pCont.HorizontalScaling;

                string currText = PdfTextExtractor.GetTextFromPage(pdfFileReader, intCurrPage, Strategy);
                List<iTextSharp.text.Rectangle> lstMatches = Strategy.GetTextLocations(strSearch, scCase);

                PdfLayer pdLayer = default(PdfLayer);
                pdLayer = new PdfLayer("over", psStamp.Writer);
                pCont.SetColorFill(BaseColor.BLACK);
                foreach (Rectangle rctRect in lstMatches) {
                    pCont.Rectangle(rctRect.Left, rctRect.Bottom, rctRect.Width, rctRect.Height);
                    pCont.Fill();
                }
            }
        }
        pdfFileReader.Close();
    }
}

Das Problem mit dem obigen Ansatz ist, dass die Ebene erfolgreich mit schwarzer Farbe hinzugefügt wird. Anstelle des Textes habe ich eine schöne schwarze Zeile über dem Text. Aber wenn ich das setze pCont.SetColorFill(BaseColor.BLACK) Für weiß wird der Text noch angezeigt. Wie kann ich dieses Problem überwinden?

War es hilfreich?

Lösung

Anstatt von:

pCont = psStamp.GetUnderContent(intCurrPage);

Verwenden:

pCont = psStamp.GetOverContent(intCurrPage);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top