使用swf在itext中添加资源(xml + mp3 +视频+图像)以创建动态pdf(使用java)

时间:2013-08-09 03:43:43

标签: xml flash itext

我创建了一个swf文件,它将在一些外部文件(5个mp3文件,2个xml文件和6个图像文件)的帮助下运行。当我使用itext创建pdf时,我只能单独嵌入swf文件。应该如何添加这些外部文件来运行swf。如果你给一些样品会很有帮助。你能帮我吗,我应该在哪里添加添加图像,mp3和xml文件的值来运行swf。

我的代码如下:

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("welcome.pdf"));
writer.setPdfVersion(PdfWriter.PDF_VERSION_1_7);
writer.addDeveloperExtension(PdfDeveloperExtension.ADOBE_1_7_EXTENSIONLEVEL3);

document.open();


RichMediaAnnotation richMedia = new RichMediaAnnotation(writer, new Rectangle(36, 400, 559,806));

PdfFileSpecification fs  = PdfFileSpecification.fileEmbedded(writer, "ballon.swf", "ballon.swf", null);

PdfIndirectReference asset = richMedia.addAsset("ballon.swf", fs);

RichMediaConfiguration configuration = new RichMediaConfiguration(PdfName.FLASH);
RichMediaInstance instance = new RichMediaInstance(PdfName.FLASH);
RichMediaParams flashVars = new RichMediaParams();
String vars = new String("&day=2011-10-13");
flashVars.setFlashVars(vars);
instance.setParams(flashVars);
instance.setAsset(asset);
configuration.addInstance(instance);

PdfIndirectReference configurationRef = richMedia.addConfiguration(configuration);

RichMediaActivation activation = new RichMediaActivation();
activation.setConfiguration(configurationRef);
richMedia.setActivation(activation);

PdfAnnotation richMediaAnnotation = richMedia.createAnnotation();
richMediaAnnotation.setFlags(PdfAnnotation.FLAGS_PRINT);
writer.addAnnotation(richMediaAnnotation);

document.close();

1 个答案:

答案 0 :(得分:0)

使用相同的方法添加这些资源(AddAsset):

PdfIndirectReference resasset = richMedia.AddAsset(...填写在这里我不是在写你的代码......);

您必须记住,您可能需要确保所有包含从XML到这些文件的资产的直接本地引用,没有目录路径(即它们都在您拥有的工作示例中的同一目录中)。