java जावा में शब्द दस्तावेज़(.doc या.docx) के लिए पृष्ठभूमि रंग(पृष्ठ रंग) कैसे सेट करें?




ms-word apache-poi (2)

Http://poi.apache.org जैसे कुछ पुस्तकालयों द्वारा, हम किसी भी पाठ रंग के साथ शब्द दस्तावेज़ बना सकते हैं, लेकिन पृष्ठभूमि या पाठ की हाइलाइट के लिए, मुझे कोई समाधान नहीं मिला।

मैनुअल तरीके से शब्द के लिए पृष्ठ रंग!

https://support.office.com/en-us/article/Change-the-background-or-color-of-a-document-6ce0b23e-b833-4421-b8c3-b3d637e62524

Poi.apache द्वारा शब्द दस्तावेज़ बनाने के लिए मेरा मुख्य कोड है

        // Blank Document
        @SuppressWarnings("resource")
        XWPFDocument document = new XWPFDocument();
        // Write the Document in file system
        FileOutputStream out = new FileOutputStream(new File(file_address));
        // create Paragraph
        XWPFParagraph paragraph = document.createParagraph();
        paragraph.setAlignment(ParagraphAlignment.RIGHT);

        XWPFRun run = paragraph.createRun();
        run.setFontFamily(font_name);
        run.setFontSize(font_size);
        // This only set text color not background!
        run.setColor(hex_color);

        for (String s : text_array) {
            run.setText(s);
            run.addCarriageReturn();
        }

        document.write(out);
        out.close();

XWPF द्वारा वर्ड दस्तावेज़ों के लिए पृष्ठभूमि का रंग सेट करने के लिए हमें इन 3 लाइनों को जोड़ने की जरूरत है हमें एक्सडब्ल्यूपीएफआरन घोषित करने के बाद इन लाइनों को सेट करना होगा और यह टेक्स्ट का रंग होगा:

CTShd cTShd = run.getCTR().addNewRPr().addNewShd();
cTShd.setVal(STShd.CLEAR);
cTShd.setFill(hex_background_color);

अपडेट: एक्सडब्लूपीएफ वर्ड डॉक्यूमेंट फाइल बनाने का सबसे नया तरीका है, लेकिन एचडब्ल्यूपीएफ द्वारा संभव पृष्ठभूमि को सेट करना जो पुरानी प्रारूप संस्करण (.doc) के लिए है

* .doc के लिए (यानी पीओआई के एचडब्ल्यूपीएफ घटक):

  1. पाठ का हाइलाइट करना: setHighlighted()

  2. पीछे का रंग:

    मुझे लगता है कि आप का अर्थ अनुच्छेद की पृष्ठभूमि (AFAIK, शब्द पूरे पृष्ठ को रंग देने की भी अनुमति देता है जो एक अलग मामला है)

    setShading() जो आपको पैराग्राफ के लिए अग्रभूमि और पृष्ठभूमि रंग ( setCvFore() माध्यम से और setCvBack() के SHDAbstractType ) प्रदान करने की अनुमति देता है आईआईआरसी, यह अग्रभूमि है जिसे आप अपने पैराग्राफ को रंग देने के लिए सेट करना चाहते हैं। पृष्ठभूमि केवल दो रंगों (वैकल्पिक) रंगों से बना है जो छायांकनों के लिए प्रासंगिक है

    अंतर्निहित डेटा संरचना का नाम Shd80 ([MS-DOC], 2.9.248) है। SHDOperand ([एमएस-डीओसी], 2. 9.249) भी है जो Word97 से पहले वर्ड की कार्यक्षमता को दर्शाता है। [एमएस-डीओसी] बाइनरी वर्ड फ़ाइल स्वरूप विनिर्देश है जो कि एमएसडीएन पर स्वतंत्र रूप से उपलब्ध है।

संपादित करें:

उपरोक्त वर्णन करने के लिए यहां कुछ कोड है:

    try {
        HWPFDocument document = [...]; // comes from somewhere
        Range range = document.getRange();

        // Background shading of a paragraph
        ParagraphProperties pprops = new ParagraphProperties();
        ShadingDescriptor shd = new ShadingDescriptor();
        shd.setCvFore(Colorref.valueOfIco(0x07)); // yellow; ICO
        shd.setIpat(0x0001); // solid background; IPAT
        pprops.setShading(shd);
        Paragraph p1 = range.insertBefore(pprops, StyleSheet.NIL_STYLE);
        p1.insertBefore("shaded paragraph");

        // Highlighting of individual characters
        Paragraph p2 = range.insertBefore(new ParagraphProperties(), StyleSheet.NIL_STYLE);     
        CharacterRun cr = p2.insertBefore("highlighted text\r");
        cr.setHighlighted((byte) 0x06); // red; ICO

        document.write([...]); // document goes to somewhere
    } catch (IOException e) {   
        e.printStackTrace();
    }
  • ICO एक रंग संरचना है
  • IPAT पूर्वनिर्धारित छायांकन शैलियों की एक सूची है




background-color