עבודה עם Watermark
נושא זה דן כיצד לעבוד באופן יזום עם סימן מים באמצעות סימן מים Aspose.Words. סימן מים הוא תמונת רקע המציגה מאחורי הטקסט במסמך. סימן מים יכול להכיל טקסט או תמונה המיוצגת על ידי Watermark מעמד.
נסה באינטרנט
אתה יכול לנסות את הפונקציונליות שלנו המונחים: watermark.
הוסף סימן מים לתעודה
In In In Microsoft Word, סימן מים יכול להיות מוכנס בקלות במסמך באמצעות הפקודה הכנס Watermark. Aspose.Words מספק watermark שיעור להוסיף או להסיר סימן מים במסמכים. Aspose.Words מספק סימן מים סוגהגדרה של שלושה סוגים אפשריים של סימני מים (Text, Image, and None) לעבוד עם
תגית: Text Watermark
הדוגמה הבאה של הקוד ממחישה כיצד להוסיף סימן מים בטקסט במסמך על ידי הגדרה TextWatermarkOptions באמצעות SetText שיטה:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(dataDir + "Document.doc"); | |
TextWatermarkOptions options = new TextWatermarkOptions(); | |
options.setFontFamily("Arial"); | |
options.setFontSize(36); | |
options.setColor(Color.BLACK); | |
options.setLayout(WatermarkLayout.HORIZONTAL); | |
options.isSemitrasparent(false); | |
doc.getWatermark().setText("Test", options); | |
doc.save(dataDir + "AddTextWatermark_out.docx"); |
תגית: Bloodmark
הדוגמה הבאה של הקוד מראה כיצד להוסיף סימן מים בתמונה במסמך על ידי הגדרה ImageWatermarkOptions באמצעות SetImage שיטה:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(dataDir + "Document.doc"); | |
ImageWatermarkOptions options = new ImageWatermarkOptions(); | |
options.setScale(5); | |
options.isWashout(false); | |
ImageInputStream stream = ImageIO.createImageInputStream(new File(dataDir + "Watermark.png")); | |
doc.getWatermark().setImage(ImageIO.read(stream), options); | |
doc.save(dataDir + "AddImageWatermark_out.docx"); |
סימן המים ניתן גם להיות מוכנס באמצעות כיתה צורה. זה מאוד קל להכניס כל צורה או תמונה לתוך ראש או רגל ובכך ליצור סימן מים מכל סוג שניתן להעלות על הדעת.
הדוגמה הבאה לקוד מוסיפה סימן מים ל מסמך Word:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
@Test | |
public void addWatermark() throws Exception | |
{ | |
Document doc = new Document(getMyDir() + "Document.docx"); | |
insertWatermarkText(doc, "CONFIDENTIAL"); | |
doc.save(getArtifactsDir() + "WorkWithWatermark.AddWatermark.docx"); | |
} | |
/// <summary> | |
/// Inserts a watermark into a document. | |
/// </summary> | |
/// <param name="doc">The input document.</param> | |
/// <param name="watermarkText">Text of the watermark.</param> | |
private void insertWatermarkText(Document doc, String watermarkText) throws Exception | |
{ | |
// Create a watermark shape, this will be a WordArt shape. | |
Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT); { watermark.setName("Watermark"); } | |
watermark.getTextPath().setText(watermarkText); | |
watermark.getTextPath().setFontFamily("Arial"); | |
watermark.setWidth(500.0); | |
watermark.setHeight(100.0); | |
// Text will be directed from the bottom-left to the top-right corner. | |
watermark.setRotation(-40); | |
// Remove the following two lines if you need a solid black text. | |
watermark.setFillColor(Color.GRAY); | |
watermark.setStrokeColor(Color.GRAY); | |
// Place the watermark in the page center. | |
watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE); | |
watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE); | |
watermark.setWrapType(WrapType.NONE); | |
watermark.setVerticalAlignment(VerticalAlignment.CENTER); | |
watermark.setHorizontalAlignment(HorizontalAlignment.CENTER); | |
// Create a new paragraph and append the watermark to this paragraph. | |
Paragraph watermarkPara = new Paragraph(doc); | |
watermarkPara.appendChild(watermark); | |
// Insert the watermark into all headers of each document section. | |
for (Section sect : (Iterable<Section>) doc.getSections()) | |
{ | |
// There could be up to three different headers in each section. | |
// Since we want the watermark to appear on all pages, insert it into all headers. | |
insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_PRIMARY); | |
insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_FIRST); | |
insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_EVEN); | |
} | |
} | |
private void insertWatermarkIntoHeader(Paragraph watermarkPara, Section sect, | |
/*HeaderFooterType*/int headerType) | |
{ | |
HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType); | |
if (header == null) | |
{ | |
// There is no header of the specified type in the current section, so we need to create it. | |
header = new HeaderFooter(sect.getDocument(), headerType); | |
sect.getHeadersFooters().add(header); | |
} | |
// Insert a clone of the watermark into the header. | |
header.appendChild(watermarkPara.deepClone(true)); | |
} |
להסיר סימן מים מתעודה
The The The Watermark הכיתה מספקת Remove
שיטה להסיר את סימן המים מתעודה.
דוגמאות הקוד הבאות מראות כיצד להסיר סימן מים ממסמכים:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(dataDir + "AddTextWatermark_out.docx"); | |
if (doc.getWatermark().getType() == WatermarkType.TEXT) { | |
doc.getWatermark().remove(); | |
} | |
doc.save(dataDir + "RemoveWatermark_out.docx"); |
כדי להסיר את סימן המים מ מסמך אתה צריך להגדיר רק את השם של צורת סימן המים במהלך הכנס ולאחר מכן להסיר את צורת סימן המים על ידי שם מוקצה.
דוגמה הקוד הבא מראה לך כיצד להגדיר את השם של צורת סימן המים ולהסיר אותו מן המסמך:
// Set name to be able to remove it afterwards
watermark.Name("WaterMark");
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
private static final String dataDir = Utils.getDataDir(RemoveWatermark.class); | |
public static void main(String[] args) throws Exception { | |
Document doc = new Document(dataDir + "RemoveWatermark.docx"); | |
removeWatermarkText(doc); | |
doc.save(dataDir + "RemoveWatermark_out.doc"); | |
} | |
private static void removeWatermarkText(Document doc) throws Exception { | |
for (HeaderFooter hf : (Iterable<HeaderFooter>) doc.getChildNodes(NodeType.HEADER_FOOTER, true)) { | |
for (Shape shape : (Iterable<Shape>) hf.getChildNodes(NodeType.SHAPE, true)) { | |
if (shape.getName().contains("WaterMark")) | |
shape.remove(); | |
} | |
} | |
} |
הוסף סימן מים לתוך תא שולחן
לפעמים אתה צריך להוסיף סימן מים / תמונה לתוך תא השולחן ולהציג אותו מחוץ לשולחן, אתה יכול להשתמש IsLayoutInCell רכוש. נכס זה מקבל או קובע דגל המציין אם הצורה מוצגת בתוך שולחן או מחוץ לו. שים לב כי הנכס עובד רק כאשר אתה מייעל את המסמך Microsoft Word 2010 שימוש OptimizeFor שיטה
דוגמה לקוד הבא מראה כיצד להשתמש בנכס זה:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(dataDir + "LayoutInCell.docx"); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT); | |
watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE); | |
watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE); | |
watermark.isLayoutInCell(false); // Display the shape outside of table cell if it will be placed into a cell. | |
watermark.setWidth(300); | |
watermark.setHeight(70); | |
watermark.setHorizontalAlignment(HorizontalAlignment.CENTER); | |
watermark.setVerticalAlignment(VerticalAlignment.CENTER); | |
watermark.setRotation(-40); | |
watermark.getFill().setColor(Color.GRAY); | |
watermark.setStrokeColor(Color.GRAY); | |
watermark.getTextPath().setText("watermarkText"); | |
watermark.getTextPath().setFontFamily("Arial"); | |
watermark.setName("WaterMark_0"); | |
watermark.setWrapType(WrapType.NONE); | |
Run run = (Run) doc.getChildNodes(NodeType.RUN, true).get(doc.getChildNodes(NodeType.RUN, true).getCount() - 1); | |
builder.moveTo(run); | |
builder.insertNode(watermark); | |
doc.getCompatibilityOptions().optimizeFor(MsWordVersion.WORD_2010); | |
// Save the document to disk. | |
dataDir = dataDir + "Shape_IsLayoutInCell_out.docx"; | |
doc.save(dataDir); |