寻找从PDF文件中提取内容的解决方案(使用控制台工具或库).
它将在服务器上用于从上传的PDF文件中生成在线电子书.
需要提取以下内容:
查看Adobe PDF库(仅5000美元),BCL SDK(?),PDFLib(795欧元),QuickPDF(250美元)
现在我们使用开源pdf2xml(提取文本,图像和链接)和GhostScript(快照和缩略图).剩下的其他事情是:
我们在支付大量资金(并且可能在选择错误的解决方案时出错)或使用免费/开源解决方案时犹豫不决.
您会推荐使用哪种BEST解决方案从PDF中提取几乎所有内容?
任何评论将不胜感激.
我想要的只是一个命令行工具,可以将文件从合并模块(.msm)提取到磁盘上.换句话说,我希望MSI可以使用相同的"管理安装"功能:
msiexec/a myProduct.msi TARGETDIR ="C:\ myInstallation"/ qn
以上只适用于msi(我可以告诉).因此,为了获得合并模块的相同效果,我正在尝试msidb.exe和orca.exe orca的文档说明:
可以从命令行指定许多合并模块选项...
从合并模块中提取文件
Orca支持三种不同的方法来提取合并模块中包含的文件.Orca可以提取单个CAB文件,将文件解压缩到模块树中,并在将文件合并到目标数据库后将其提取到源图像中...
提取文件
要从合并模块中提取单个文件,请使用
命令行上的... -x ...选项,其中是新目录树的所需路径.
指定的路径用作提取文件的根路径.所有文件都从嵌入在模块中的CAB文件中提取出来并放在指定的路径中.提取文件的目录布局基于合并模块的目录树.
这听起来像我需要的.但是当我尝试它时,orca只是打开一个编辑器(在我指定的msm上有信息)然后什么都不做.我尝试了各种命令行,通常从这开始:
orca -x theDirectory theModule.msm
我使用"theDirectory"作为我想要的任何空文件夹.就像我说的 - 它没有做任何事情.
然后我尝试了msidb,我做过的几次尝试看起来像这样:
msidb -d theModule.msm -w {storage}
msidb -d theModule.msm -x MergeModule.CABinet
在第一种情况下,我不知道要为{storage}放什么.在第二种情况下,事实证明文字字符串"MergeModule.CABinet"是必要的(它是保留名称).但是,提取的机柜不保留文件层次结构或"正常"文件名; 所以我不能用它来达到我的目的.
有人可以用命令行选项解释我做错了什么吗?有没有其他工具可以做到这一点?
我一直在使用gst-launch实用程序对GStreamer进行一些实验.但是,最终目标是使用GStreamer库在我自己的应用程序上实现相同的功能.
问题是,最终很难(至少对于那些不习惯使用GStreamer API的人来说)将我在命令行上测试的内容"移植"到C/C++代码.
我可能需要移植的命令示例如下:
gst-launch filesrc location="CLIP8.mp4" ! decodebin2 ! jpegenc ! multifilesink location="test%d.jpg"
Run Code Online (Sandbox Code Playgroud)
什么是最"直接"的方式/方法来获取这样的命令并在我自己的应用程序上用C语言编写它.
另外,作为一个附带问题,我怎么能用在内存上做这项工作的可能性替换multifilesink(我正在使用OpenCV对应该从视频中提取的给定图像执行一些计算).是否可以直接解码到内存并立即使用它而无需先保存到文件系统?它可以(并且应该)是顺序的,我的意思是在我完成处理当前帧之后只会继续到下一帧,这样我就不必在内存中保留数千帧.
你说什么?
我一直试图从.mov文件中提取音频一段时间,我似乎无法让它工作.具体来说,我需要提取音频并将其保存为.aif或.aiff文件.
我尝试使用AVMutableComposition,并将mov文件作为AVAsset加载.在最终使用AVAssetExportSession(将输出文件类型设置为AVFileTypeAIFF,这是我需要它的格式)之前,仅将音轨添加到AVMutableComposition,将文件写入aif.
我收到一个错误,说这个输出文件类型无效,我不确定为什么:
*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'输出文件类型无效'
AVAssetExportSession *exporter;
exporter = [[AVAssetExportSession alloc] initWithAsset:composition presetName:AVAssetExportPresetHighestQuality] ;
exporter.audioMix = audioMix;
exporter.outputURL=[NSURL fileURLWithPath:filePath];
exporter.outputFileType=AVFileTypeAIFF; //Error occurs on this line
Run Code Online (Sandbox Code Playgroud)
我不确定上述方法是否有效,但我可能会认为我只是做错了.但是,如果有人知道另一种方法来实现我想要实现的目标,那么任何帮助都会非常感激.
如果需要,我可以发布更详细的代码,但目前我正在尝试其他一些方法,所以现在它有点乱.
谢谢您的帮助!
我有一个int [] []对象.它在我的代码中定义如下:
public int[][] position = {
{20, 30}, {73, 91},
{82, 38}
};
Run Code Online (Sandbox Code Playgroud)
是否有可能获得每对圆括号中第一个值(左侧)的值,并使用for循环将它们存储为单独的int变量?基本上,是否可以提取"20","73"和"82"并将它们分别存储到int变量中?
mystring = "9862 ....... -pack size 1 - SST Unspun Label (Roll) CAT#: 9862"
Run Code Online (Sandbox Code Playgroud)
我想在这个字符串"9862"中获得前4个数字.如何获取此字符串中的第一个数字序列.并将其存储在另一个变量中?
Javascript似乎没有识别出这个变量.我不知道为什么.如果我做:
alert(mystring); //I don't get an alert pop up nor does it show any errors.
Run Code Online (Sandbox Code Playgroud)
我试图存储在'mystring'变量中的文本可能有问题吗?
如何在不安装的情况下提取DMG的内容?我想在我的应用程序中添加autoupdate系统.它从网站下载DMG,然后从中提取新版本的应用程序.
我正在努力从BufferedImage中提取快速有效的矩形字.
例如,我有以下页面:(编辑!)图像被扫描,因此它可能包含噪音,歪斜和失真.

如何在没有矩形的情况下提取以下图像:(编辑!)我可以使用OpenCv或任何其他库,但我是高级图像处理技术的新手.

编辑
我已经使用了karlphillip 这里建议的方法,它工作得体.
这是代码:
package ro.ubbcluj.detection;
import java.awt.FlowLayout;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.core.MatOfPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.core.Size;
import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;
public class RectangleDetection {
public static void main(String[] args) throws IOException {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat image = loadImage();
Mat grayscale = convertToGrayscale(image);
Mat treshold = tresholdImage(grayscale);
List<MatOfPoint> contours …Run Code Online (Sandbox Code Playgroud) TeamViewer允许使用文件扩展名以专有格式记录会话.tvs.可以使用本地计算机上安装的任何编解码器(使用TeamViewer)将其转换为AVI,但不能使用MP4或其他容器格式.
对AVI的编码非常慢(显然不是多线程,使用x264 vfw; XviD会花费更长时间),结果文件在VLC中无法正常播放,并且在Windows上的Avidemux中根本无法编辑.
因此,我想知道是否可以在TVS文件中提取音频和视频流,以便使用ffmpeg进行进一步处理(否则,我需要编码两次,这意味着每60分钟录像4小时).我希望它与其他格式相似,只是使用自定义编解码器 - 我希望它不是内置在TeamViewer中,但也可用于其他应用程序.
我.MOV在Linus(Debian 64bit)上使用FFMPEG 从文件中提取缩略图.
我从中提取缩略图的文件大约是430兆字节.
我使用以下命令来执行此操作:
ffmpeg -i 'largeVideoFile.mov' -ss 00:14:37 -vframes 1 'thumbnail.jpg'
Run Code Online (Sandbox Code Playgroud)
单帧提取需要3分钟以上.
我怎样才能加快速度?