本文整理汇总了Java中org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage类的典型用法代码示例。如果您正苦于以下问题:Java BinaryPartAbstractImage类的具体用法?Java BinaryPartAbstractImage怎么用?Java BinaryPartAbstractImage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
BinaryPartAbstractImage类属于org.docx4j.openpackaging.parts.WordprocessingML包,在下文中一共展示了BinaryPartAbstractImage类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: writeImage
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
@Override
public void writeImage(final BufferedImage image) {
final P imageParagraph = this.wmlObjectFactory.createP();
final R imageRun = this.wmlObjectFactory.createR();
imageParagraph.getContent().add(imageRun);
final Drawing drawing = this.wmlObjectFactory.createDrawing();
imageRun.getContent().add(drawing);
try {
final ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
ImageIO.write(image, "PNG", byteOutputStream);
final BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(this.extractedDocument.getDocumentPackage(),
byteOutputStream.toByteArray());
final Inline imageInline = imagePart.createImageInline("Filename", "An image", nextUniqueImageId(), nextUniqueImageId(), false);
drawing.getAnchorOrInline().add(imageInline);
} catch (final Exception e) {
throw new RuntimeException(e);
}
addParagraph(imageParagraph);
}
示例2: saveDocxImg
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
/**
* @Description: 提取word图片
*/
public void saveDocxImg(String filePath, String savePath) throws Exception {
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage
.load(new File(filePath));
for (Entry<PartName, Part> entry : wordMLPackage.getParts().getParts()
.entrySet()) {
if (entry.getValue() instanceof BinaryPartAbstractImage) {
BinaryPartAbstractImage binImg = (BinaryPartAbstractImage) entry
.getValue();
// 图片minetype
String imgContentType = binImg.getContentType();
PartName pt = binImg.getPartName();
String fileName = null;
if (pt.getName().indexOf("word/media/") != -1) {
fileName = pt.getName().substring(
pt.getName().indexOf("word/media/")
+ "word/media/".length());
}
System.out.println(String.format("mimetype=%s,filePath=%s",
imgContentType, pt.getName()));
FileOutputStream fos = new FileOutputStream(savePath + fileName);
((BinaryPart) entry.getValue()).writeDataToOutputStream(fos);
fos.close();
}
}
}
示例3: newImage
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
/**
* 创建包含图片的内容
*
* @param word
* @param sourcePart
* @param imageFilePath
* @return
* @throws Exception
*/
public static P newImage(WordprocessingMLPackage word,
Part sourcePart,
String imageFilePath) throws Exception {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage
.createImagePart(word, sourcePart, new File(imageFilePath));
//随机数ID
int id = (int) (Math.random() * 10000);
//这里的id不重复即可
Inline inline = imagePart.createImageInline("image", "image", id, id * 2, false);
Drawing drawing = factory.createDrawing();
drawing.getAnchorOrInline().add(inline);
R r = factory.createR();
r.getContent().add(drawing);
P p = factory.createP();
p.getContent().add(r);
return p;
}
示例4: newImage
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
public P newImage(WordprocessingMLPackage wordMLPackage,
ObjectFactory factory, byte[] bytes, String filenameHint,
String altText, int id1, int id2, long cx) throws Exception {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage
.createImagePart(wordMLPackage, bytes);
Inline inline = imagePart.createImageInline(filenameHint, altText, id1,
id2, cx, false);
// Now add the inline in w:p/w:r/w:drawing
P p = factory.createP();
R run = factory.createR();
p.getContent().add(run);
Drawing drawing = factory.createDrawing();
run.getContent().add(drawing);
drawing.getAnchorOrInline().add(inline);
return p;
}
示例5: newImage
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
/**
* Create image, without specifying width
*
* @param wordMLPackage
* : a reference to the docx file
* @param bytes
* : data of the image
* @param filenameHint
* : file name or hint
* @param altText
* : alternative text
* @return the created paragraph that contains image
* @throws Exception
*/
private static org.docx4j.wml.P newImage(WordprocessingMLPackage wordMLPackage, byte[] bytes, String filenameHint,
String altText) throws Exception {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes);
Inline inline = imagePart.createImageInline(filenameHint, altText, id1++, id2++, false);
// Now add the inline in w:p/w:r/w:drawing
org.docx4j.wml.P p = wmlObjectFactory.createP();
org.docx4j.wml.R run = wmlObjectFactory.createR();
p.getContent().add(run);
org.docx4j.wml.Drawing drawing = wmlObjectFactory.createDrawing();
run.getContent().add(drawing);
drawing.getAnchorOrInline().add(inline);
return p;
}
示例6: newImage
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
/**
* Create image, without specifying width
*/
private static org.docx4j.wml.P newImage(WordprocessingMLPackage wordMLPackage,
byte[] bytes,
String filenameHint, String altText,
int id1, int id2) throws Exception {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes);
Inline inline = imagePart.createImageInline( filenameHint, altText, id1, id2, false);
// Now add the inline in w:p/w:r/w:drawing
org.docx4j.wml.ObjectFactory factory = Context.getWmlObjectFactory();
org.docx4j.wml.P p = factory.createP();
org.docx4j.wml.R run = factory.createR();
p.getContent().add(run);
org.docx4j.wml.Drawing drawing = factory.createDrawing();
run.getContent().add(drawing);
drawing.getAnchorOrInline().add(inline);
return p;
}
示例7: newImage
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
public static org.docx4j.wml.P newImage( WordprocessingMLPackage wordMLPackage,
Part sourcePart,
byte[] bytes,
String filenameHint, String altText,
int id1, int id2) throws Exception {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage,
sourcePart, bytes);
Inline inline = imagePart.createImageInline( filenameHint, altText,
id1, id2, false);
// Now add the inline in w:p/w:r/w:drawing
org.docx4j.wml.ObjectFactory factory = Context.getWmlObjectFactory();
org.docx4j.wml.P p = factory.createP();
org.docx4j.wml.R run = factory.createR();
p.getContent().add(run);
org.docx4j.wml.Drawing drawing = factory.createDrawing();
run.getContent().add(drawing);
drawing.getAnchorOrInline().add(inline);
return p;
}
示例8: newImage
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
/**
* Create image, without specifying width
*/
public static org.docx4j.wml.P newImage( WordprocessingMLPackage wordMLPackage,
byte[] bytes,
String filenameHint, String altText,
int id1, int id2) throws Exception {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes);
Inline inline = imagePart.createImageInline( filenameHint, altText,
id1, id2, false);
// Now add the inline in w:p/w:r/w:drawing
org.docx4j.wml.ObjectFactory factory = Context.getWmlObjectFactory();
org.docx4j.wml.P p = factory.createP();
org.docx4j.wml.R run = factory.createR();
p.getContent().add(run);
org.docx4j.wml.Drawing drawing = factory.createDrawing();
run.getContent().add(drawing);
drawing.getAnchorOrInline().add(inline);
return p;
}
示例9: inlineToXlsx
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
@Override
public void inlineToXlsx(SpreadsheetMLPackage pkg, WorksheetPart worksheetPart, Cell newCell, Object paramValue, Matcher matcher) {
try {
Image image = new Image(paramValue, matcher);
if (image.isValid()) {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(pkg, worksheetPart, image.imageContent);
CTOneCellAnchor anchor = new CTOneCellAnchor();
anchor.setFrom(new CTMarker());
CellReference cellReference = new CellReference("", newCell.getR());
anchor.getFrom().setCol(cellReference.getColumn() - 1);
anchor.getFrom().setRow(cellReference.getRow() - 1);
anchor.setExt(new CTPositiveSize2D());
anchor.getExt().setCx(XlsxUtils.convertPxToEmu(image.width));
anchor.getExt().setCy(XlsxUtils.convertPxToEmu(image.height));
newCell.setV(null);
putImage(worksheetPart, pkg, imagePart, anchor);
}
} catch (Exception e) {
throw new ReportFormattingException("An error occurred while inserting bitmap to xlsx file", e);
}
}
示例10: inlineToDocx
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
@Override
public void inlineToDocx(WordprocessingMLPackage wordPackage, Text text, Object paramValue, Matcher paramsMatcher) {
try {
Image image = new Image(paramValue, paramsMatcher);
if (image.isValid()) {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordPackage, resolveTextPartForDOCX(text, wordPackage),
image.imageContent);
Inline inline = imagePart.createImageInline("", "", docxUniqueId1++, docxUniqueId2++, false);
ImageSize oldSize = imagePart.getImageInfo().getSize();
double widthExtent = (double) image.width / oldSize.getWidthPx();
double heightExtent = (double) image.height / oldSize.getHeightPx();
inline.getExtent().setCx((long) (inline.getExtent().getCx() * widthExtent));
inline.getExtent().setCy((long) (inline.getExtent().getCy() * heightExtent));
org.docx4j.wml.Drawing drawing = new org.docx4j.wml.ObjectFactory().createDrawing();
R run = (R) text.getParent();
run.getContent().add(drawing);
drawing.getAnchorOrInline().add(inline);
text.setValue("");
}
} catch (Exception e) {
throw new ReportFormattingException("An error occurred while inserting bitmap to docx file", e);
}
}
示例11: addImageToPackage
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
/**
* Docx4j拥有一个由字节数组创建图片部件的工具方法, 随后将其添加到给定的包中. 为了能将图片添加
* 到一个段落中, 我们需要将图片转换成内联对象. 这也有一个方法, 方法需要文件名提示, 替换文本,
* 两个id标识符和一个是嵌入还是链接到的指示作为参数.
* 一个id用于文档中绘图对象不可见的属性, 另一个id用于图片本身不可见的绘制属性. 最后我们将内联
* 对象添加到段落中并将段落添加到包的主文档部件.
*
* @param wordMLPackage 要添加图片的包
* @param bytes 图片对应的字节数组
* @throws Exception 不幸的createImageInline方法抛出一个异常(没有更多具体的异常类型)
*/
public void addImageToPackage(byte[] bytes) throws Exception {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wmlPackage, bytes);
int docPrId = 1;
int cNvPrId = 2;
Inline inline = imagePart.createImageInline("Filename hint", "Alternative text", docPrId, cNvPrId, false);
P paragraph = WmlElementUtils.addInlineImageToParagraph(inline);
wmlPackage.getMainDocumentPart().addObject(paragraph);
}
示例12: addImageToPara
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
/**
* @Description: 添加图片到段落
*/
public void addImageToPara(WordprocessingMLPackage wordMLPackage,
ObjectFactory factory, P paragraph, String filePath,
String content, RPr rpr, String altText, int id1, int id2)
throws Exception {
R run = factory.createR();
if (content != null) {
Text text = factory.createText();
text.setValue(content);
text.setSpace("preserve");
run.setRPr(rpr);
run.getContent().add(text);
}
InputStream is = new FileInputStream(filePath);
byte[] bytes = IOUtils.toByteArray(is);
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage
.createImagePart(wordMLPackage, bytes);
Inline inline = imagePart.createImageInline(filePath, altText, id1,
id2, false);
Drawing drawing = factory.createDrawing();
drawing.getAnchorOrInline().add(inline);
run.getContent().add(drawing);
paragraph.getContent().add(run);
}
示例13: addImageToPackage
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
/**
* Docx4j拥有一个由字节数组创建图片部件的工具方法, 随后将其添加到给定的包中. 为了能将图片添加
* 到一个段落中, 我们需要将图片转换成内联对象. 这也有一个方法, 方法需要文件名提示, 替换文本,
* 两个id标识符和一个是嵌入还是链接到的指示作为参数.
* 一个id用于文档中绘图对象不可见的属性, 另一个id用于图片本身不可见的绘制属性. 最后我们将内联
* 对象添加到段落中并将段落添加到包的主文档部件.
*
* @param wordMLPackage 要添加图片的包
* @param bytes 图片对应的字节数组
* @throws Exception 不幸的createImageInline方法抛出一个异常(没有更多具体的异常类型)
*/
private static void addImageToPackage(WordprocessingMLPackage wordMLPackage,
byte[] bytes) throws Exception {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes);
int docPrId = 1;
int cNvPrId = 2;
Inline inline = imagePart.createImageInline("Filename hint","Alternative text", docPrId, cNvPrId, false);
P paragraph = addInlineImageToParagraph(inline);
wordMLPackage.getMainDocumentPart().addObject(paragraph);
}
示例14: createInlineImage
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
/**
* 使用给定的文件创建一个内联图片.
* 跟前面例子中一样, 我们将文件转换成字节数组, 并用它创建一个内联图片.
*
* @param file
* @return
* @throws Exception
*/
private static Inline createInlineImage(File file) throws Exception {
byte[] bytes = convertImageToByteArray(file);
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes);
int docPrId = 1;
int cNvPrId = 2;
return imagePart.createImageInline("Filename hint", "Alternative text", docPrId, cNvPrId, false);
}
示例15: createRunWithImage
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; //导入依赖的package包/类
public static R createRunWithImage(WordprocessingMLPackage wordMLPackage, byte[] bytes, String filenameHint, String altText, Integer maxWidth) throws Exception {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes);
// creating random ids assuming they are unique
// id must not be too large, otherwise Word cannot open the document
int id1 = random.nextInt(100000);
int id2 = random.nextInt(100000);
if (filenameHint == null) {
filenameHint = "dummyFileName";
}
if (altText == null) {
altText = "dummyAltText";
}
Inline inline;
if (maxWidth == null) {
inline = imagePart.createImageInline(filenameHint, altText,
id1, id2, false);
} else {
inline = imagePart.createImageInline(filenameHint, altText,
id1, id2, false, maxWidth);
}
// Now add the inline in w:p/w:r/w:drawing
org.docx4j.wml.ObjectFactory factory = new org.docx4j.wml.ObjectFactory();
org.docx4j.wml.R run = factory.createR();
org.docx4j.wml.Drawing drawing = factory.createDrawing();
run.getContent().add(drawing);
drawing.getAnchorOrInline().add(inline);
return run;
}