- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经使用 iTextsharp 实现了将 swf 文件添加到 pdf,我的问题是,是否可以进行逆向工程,例如,如果我将 pdf 作为输入,我必须从中获取 swf 文件,如果是,我如何能做到吗?
任何关于如何开始的想法,将不胜感激。
亲切的问候,
拉古.M
最佳答案
这是一个使用此嵌入式 pdf 的工作示例(我找到的第一个):
http://www.opf-labs.org/format-corpus/pdfCabinetOfHorrors/fileAttachment.pdf
并提取嵌入文件,在本例中为 KSBASE.WQ2 文件。
public static void ExtractAttachments(String src, String dir)
{
PdfReader reader = new PdfReader(string.Format("{0}\\{1}", dir, src));
PdfDictionary root = reader.Catalog;
PdfDictionary names = root.GetAsDict(PdfName.NAMES);
PdfDictionary embedded = names.GetAsDict(PdfName.EMBEDDEDFILES);
PdfArray filespecs = embedded.GetAsArray(PdfName.NAMES);
for (int i = 0; i < filespecs.Size; )
{
ExtractAttachment(reader, dir, filespecs.GetAsString(i++),
filespecs.GetAsDict(i++));
}
}
protected static void ExtractAttachment(PdfReader reader, string dir, PdfString name, PdfDictionary filespec)
{
PRStream stream;
FileStream fos;
String filename;
PdfDictionary refs = filespec.GetAsDict(PdfName.EF);
foreach(PdfName key in refs.Keys) {
stream = (PRStream)PdfReader.GetPdfObject(refs.GetAsIndirectObject(key));
filename = filespec.GetAsString(key).ToString();
// here you can do an filename.Contains(".swf) check
var fileBytes = PdfReader.GetStreamBytes(stream);
File.WriteAllBytes(string.Format("{0}\\{1}", dir, filename), fileBytes);
}
}
你可以这样调用它:
var dir = "C:\\temp\\PdfExtract";
ExtractAttachments("fileAttachment.pdf", dir);
您可以简单地添加一个 filename.Contains(".swf)
在提取之前检查文件名。
更新
好的,如果上述方法不起作用,这就是我的解决方案。
文件必须位于目录中的不同位置,如果没有看到文件,这就是我的处理方式。
我会在 root 解析后添加一个断点,然后进入它以查看是否可以找到 swf 文件所在的位置。
如果您查看 root.Keys
,您将看到 Catalog
包含的内容。
要检索任何字典对象,您可以使用 GetAsDict
方法传入匹配的 PdfName
。
再往下看,您可以看到它包含 EmbeddedFiles
等等。
有几个 PdfName
名称,甚至还有一个 Flash 名称。
由于任何文档的结构都可能不同,这只是调查结构并使用正确的参数到 GetAsDict
以读取文件的情况。
关于c# - 从 PDF 中提取 SWF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21780168/
我正在评估 Amazon SWF 作为构建分布式工作流系统的选项。主要语言将是 Java,因此 Flow 框架是一个显而易见的选择。只有一件事让我感到困惑,在我推荐它作为我们架构中的关键组件之前,我会
我在将我的 swf 文件置于另一个 swf 文件之上时遇到问题。我在这里尝试了解决方案: http://jsfiddle.net/j08691/ezXjx/ #a { position
我正在处理一个项目,我需要打开一个 swf 文件,更改 swf 标签的内容 不接触其他标签 我试过“SwfDotNet 库”,但它不输出未知标签。例如,如果它遇到“EXPORTASSETS”标签,它不
希望这不会被视为两次问同样的问题...... 所以我正在开发一个 Flash 网站(在 AS2 中),它有一个外部索引 swf,它使用 loadMovie("subfoo1.swf", placeTo
我在使用 Flash 和 Flex 时遇到了一个非常奇怪的问题。在某些情况下,如果同时加载了另一个 SWF,则在运行时(使用 Loader)加载的 SWF 中的影片剪辑似乎无法实例化。这是重现错误的程
当我创建暂时隐藏在选项卡中的 SWF 对象时,因此在某些浏览器(如 FireFox)中未完全加载,我似乎无法找到方法来确定 SWF 是否已加载,因此我可以与它。 /* Generate SWF (on
我加载了一个外部 SWF。 外部 SWF 有一个嵌入的 DisplayObject (getChildAt(0)) 我得到了它的 Class 实例以下代码: public function g
这是一个更一般的问题,而不是“帮助修复代码”问题: 目标 父 swf a.swf 加载外部子 b.swf 子 swf 有跟踪语句:[timestamp][log level][class] msg 父
我想在显示swf文件的webview中显示另一个swf文件,并且我可以获取显示swf文件的路径,但是当我将另一个swf文件拖放到显示swf文件的webview时,swf文件无法获取打不开,为什么?以及
目标:无需 www.macromedia.com/support/documentation/上的任何特殊权限,即可从本地协议(protocol)(widget://、file://、chrome-e
我正在尝试通过 CSS(绝对定位)将透明 PNG 定位在 SWF 影片上。但是,当我将 PNG 直接放在 SWF 上时,SWF 上的所有单击操作似乎都被禁用了。 SWF 要求使用您的网络摄像头,但您无
我想知道是否有人知道以编程方式创建 Flash swf 文件的任何库。 或者用于从 svg 创建 swf。 最佳答案 这听起来对 swfmill 来说是一份完美的工作我想您会发现它可以让您同时执行两种
我有一个加载其他几个 swf 的主要“父” swf。如果主 swf 发生了什么事,我需要告诉其中一个子 swf。 反过来,这似乎效果很好。任何 child 都可以简单地 dispatchEvent()
概览: 我有一个 SWF 横幅广告模板,它从我开发的平台加载 JSON,然后循环浏览该 JSON 中指定的一些产品。每个产品都由您的标准标题、价格和图像组成。 在平台上,用户可以通过一些 UI 工具(
我一直在努力让 AS2 swf 在 AS3 swf 中正确加载 - 但没有成功... AS2 文件(这是一个相当大的应用程序,引用许多外部 xml 文件等)在 Flash Player 中启动时可以完
我正在尝试做这样的事情:拿一个 swf 文件损坏它,然后..在设备内部再次将其可读(未损坏)...我将使用我自己编写的设备指纹检查该设备是否可以恢复 swf.. 得到? 我可以这样做吗?有什么办法呢?
我需要从一些 swf 文件中提取所有文本。我使用 Java 是因为我有很多用这种语言开发的模块。因此,我在 Web 上搜索了所有专门用于处理 SWF 文件的免费 Java 库。最后,我找到了Stuar
我认为这个问题不言自明。以前有人这样做过吗? 更新:澄清我为什么需要这样做。我们有一个 AS1 - AS2 站点的单一 swf 庞然大物,带有大型视频库部分。客户想要更新视频部分,因为 AS2 代码无
有没有人成功使用过 [Flagstone Software][1] 的 Transform SWF for Java 库 [1]: http://www.flagstonesoftware.com/t
例如,隐藏一个简单的 youtube 嵌入 document.getElementById('youtube').style.display = 'block'; document.getElemen
我是一名优秀的程序员,十分优秀!