我正在寻找一个PDF库,它允许我从PDF文档中提取文本.我看过PyPDF,这可以很好地从PDF文档中提取文本.这样做的问题是,如果文档中有表,则表中的文本将与文档文本的其余部分一起提取.这可能会有问题,因为它会产生一些无效且看起来乱码的文本部分(例如,大量数字混在一起).
我正在寻找更高级的东西.我想从PDF文档中提取文本,不包括任何表格和特殊格式.那里有图书馆吗?或者我被迫对输出文本进行一些后处理以摆脱这些部分?
我有一个用Scala编写的小脚本,用于加载具有100,000,000个样本记录的MongoDB实例.我们的想法是让数据库全部加载,然后进行一些性能测试(并在必要时调整/重新加载).
问题是每100,000个记录的加载时间相当线性增加.在我的加载过程开始时,只需4秒即可加载这些记录.现在,在接近6,000,000条记录中,加载相同数量(100,000)需要300到400秒!那要慢两个数量级!查询仍然很快,但按照这个速度,我永远无法加载我想要的数据量.
如果我用我的所有记录(全部100,000,000!)编写一个文件,然后使用mongoimport导入整个文件,这会更快吗?或者我的期望是否过高而且我使用的数据库超出了应该处理的范围?
有什么想法吗?谢谢!
这是我的脚本:
import java.util.Date
import com.mongodb.casbah.Imports._
import com.mongodb.casbah.commons.MongoDBObject
object MongoPopulateTest {
val ONE_HUNDRED_THOUSAND = 100000
val ONE_MILLION = ONE_HUNDRED_THOUSAND * 10
val random = new scala.util.Random(12345)
val connection = MongoConnection()
val db = connection("mongoVolumeTest")
val collection = db("testData")
val INDEX_KEYS = List("A", "G", "E", "F")
def main(args: Array[String]) {
populateCoacs(ONE_MILLION * 100)
}
def populateCoacs(count: Int) {
println("Creating indexes: " + INDEX_KEYS.mkString(", "))
INDEX_KEYS.map(key => collection.ensureIndex(MongoDBObject(key -> 1)))
println("Adding " + count + " records …Run Code Online (Sandbox Code Playgroud) 我想申请一个渐变背景只是一排,我已经创建了一个XAML的Silverlight网格.
我可以毫无困难地做这样的事情:
<Grid>
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0" />
<GradientStop Color="White" Offset="1" />
</LinearGradientBrush>
</Grid.Background>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<!-- components and various stuffs -->
</Grid>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会将渐变应用于整个网格.
好像我不能将渐变(甚至颜色)应用于网格中的单个行定义.可能吗?
谢谢!
假设我有两个类:Animal和Dog.狗是动物的一个子类.我执行以下代码:
Animal a = new Dog();
Run Code Online (Sandbox Code Playgroud)
现在我可以通过一个变量调用Dog类的方法.
但我的问题是:如果我可以通过Dog对象(继承)调用所有Animal的方法而不是为什么我应该使用多态原理?我可以宣布:
Dog d = new Dog();
Run Code Online (Sandbox Code Playgroud)
有了这个声明,可以使用Animal的所有方法和Dog方法.那么为什么要使用多态?非常感谢您的回答.
我遇到了bootstrap行的问题.我的按钮没有与行文本垂直对齐.这是一个问题的例子:

<div class="col-md-2 text-right">
<button class="btn btn-lg btn-primary" type="button">A</button>
</div>
<div class="col-md-1 text-center">
<h3>or</h3>
</div>
<div class="col-md-2 text-left">
<button class="btn btn-lg btn-primary" type="button">B</button>
</div>
Run Code Online (Sandbox Code Playgroud)
如果我把它做得更大,文本甚至会挂在按钮下面,如下所示:

<div class="col-md-1 text-center">
<h1>OR</h1> <!-- H1 now! -->
</div>
Run Code Online (Sandbox Code Playgroud)
有没有办法让"或"的底部与按钮文本的底部对齐?或者甚至只是让文本以按钮为中心?谢谢!
更新:这是一个JSFiddle,按要求:http://jsfiddle.net/Dk37C/1/(你必须拉伸右侧显示才能看到行为)
我有一张我正在使用的旧桌子,看起来像这样:
+------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| BINARY_DATA_ID | varchar(255) | NO | PRI | | |
| BINARY_DATA | longblob | YES | | NULL | |
| BINARY_DATA_NAME | varchar(255) | YES | | NULL | |
+------------------+--------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)
这个问题的主要问题是BinaryDataJava类加载BINARY_DATA列,即使我只需要BINARY_DATA_NAME.我知道构建这个的最好方法是从元数据中分割数据(比如文件名),以便它们存在于不同的表中.从那里开始使数据延迟加载是微不足道的.这应该是首先应该做的.
不幸的是,由于组织限制,我可能无法完成上述任务.作为一种解决方法,是否可以使用一些注释使该列延迟加载而不是将内容拆分为单独的表?我已经修改了BinaryData类,因此它有一个内部静态BinaryDataData类,@Embedded其属性为@Basic(fetch=FetchType.LAZY):
@Entity
@Table
@Proxy(lazy=false)
@Inheritance(strategy=InheritanceType.JOINED)
public class BinaryData implements Serializable, Persistable<BinaryData>, Cloneable {
private static …Run Code Online (Sandbox Code Playgroud) 是否存在将从PDF文档中删除"所有者"密码的库,以便可以以编程方式从中提取文本?像PDF技术的密码恢复工具,但可以从命令行或从Python调用.GUI界面对我来说并不实用,因为文档的数量太大了.
请不要对流程的合法性发表评论.所涉及的PDF是拥有的,并且需要提取文本以形成文档集的关键字云.
我能够弄清楚如何使用带有SOAPpy和xml.dom minidom的Python在JasperServer上运行报告,下载文件,列表文件夹等.
这是一个示例执行报告请求,它的工作原理如下:
repositoryURL = 'http://user@pass:myjasperserver:8080/jasperserver/services/repository'
repositoryWSDL = repositoryURL + '?wsdl'
server = SOAPProxy(repositoryURL, repositoryWSDL)
print server._ns(repositoryWSDL).runReport('''
<request operationName="runReport" locale="en">
<argument name="RUN_OUTPUT_FORMAT">PDF</argument>
<resourceDescriptor name="" wsType="" uriString="/reports/baz">
<label>null</label>
<parameter name="foo">bar</parameter>
</resourceDescriptor>
</request>
''')
Run Code Online (Sandbox Code Playgroud)
但是,我无法正确格式化服务器的"ReportScheduler"部分的请求.我已经查阅了这里的文档(http://jasperforge.org/espdocs/docsbrowse.php?id=74&type=docs&group_id=112&fid=305),并尝试在样本之后模拟我的请求,但没有运气(参见第27页) ).
以下是我尝试过的两个示例,它们都返回相同的错误:
schedulingURL = 'http://user@pass:myjasperserver:8080/jasperserver/services/ReportScheduler'
schedulingWSDL = schedulingURL + '?wsdl'
server = SOAPProxy(schedulingURL, schedulingWSDL)
# first request
print server._ns(schedulingWSDL).scheduleJob('''
<request operationName="scheduleJob" locale="en">
<job>
<reportUnitURI>/reports/baz</reportUnitURI>
<label>baz</label>
<description>baz</description>
<simpleTrigger>
<startDate>2009-05-15T15:45:00.000Z</startDate>
<occurenceCount>1</occurenceCount>
</simpleTrigger>
<baseOutputFilename>baz</baseOutputFilename>
<outputFormats>
<outputFormats>PDF</outputFormats>
</outputFormats>
<repositoryDestination>
<folderURI>/reports_generated</folderURI>
<sequentialFilenames>true</sequentialFilenames>
<overwriteFiles>false</overwriteFiles>
</repositoryDestination>
<mailNotification>
<toAddresses>my@email.com</toAddresses>
<subject>test</subject>
<messageText>test</messageText>
<resultSendType>SEND_ATTACHMENT</resultSendType>
</mailNotification> …Run Code Online (Sandbox Code Playgroud) 在调整画布的父级时,我遇到了一个奇怪的问题,它恰好是一个ChildWindow.
从高层次来看,这是我在用户点击按钮时尝试做的事情:
步骤1和2工作正常.问题出在第3步:当我单步执行F#/ Silverlight代码时,所有大小似乎都设置正确.问题是,ChildWindow获取屏幕上呈现为多比它确实应该更高.
看一下下面的例子:
member this.btnWhatever_Click(sender : obj) (args : RoutedEventArgs) =
let parentWindow = this.Parent :?> ChildWindow // get the canvas' parent, and cast it to a ChildWindow
// if the RowDefinition height is set to our standard, the hide it by setting it to 0
if this.aRowDefinition.Height.Value.Equals STANDARD_ROW_HEIGHT then
this.aRowDefinition.Height <- new GridLength(0.)
this.Height <- this.Height - HEDGE_ROW_HEIGHT
parentWindow.Height <- parentWindow.Height - STANDARD_ROW_HEIGHT
this.btnCreateOrRemoveHedge.Content <- "On"
// otherwise, unhide the RowDefinition by …Run Code Online (Sandbox Code Playgroud) 我正在编写一个实用程序来检查Atlassian Stash对已修改文件的拉取请求 - 目标是通过Checkstyle(或Findbugs或PMD)运行每个Java文件,然后对每行有插件注释有问题.
为此,插件必须通过Checkstyle(或其他代码样式执行实用程序)运行请求中每个已修改 Java文件的内容.Atlassian Stash API使获取修改文件的内容变得非常容易,但似乎无法以编程方式通过Checkstyle运行这些内容 - 唯一的方法是将临时文件保存在磁盘上并运行Checkstyle通过调用Runtime.getRuntime().exec(...)命令来反对它.
是否有任何简化的类似Checkstyle的实用程序可以使用Java API以编程方式运行?
我基本上需要能做类似这样的事情:
String contentsOfJavaFile = ; //stuff
List<Problem> problems = CheckstyleOrSomethingElse.analyze(contentsOfJavaFile);
for(Problem p : problems) {
// p.getLine();
// p.getDescription();
// add comment to Stash
}
Run Code Online (Sandbox Code Playgroud) java ×3
python ×3
pdf ×2
silverlight ×2
xaml ×2
background ×1
checkstyle ×1
css ×1
f# ×1
findbugs ×1
gradient ×1
hibernate ×1
html ×1
lazy-loading ×1
mongodb ×1
mysql ×1
nosql ×1
parsing ×1
passwords ×1
pmd ×1
polymorphism ×1
scala ×1
soap ×1
sql ×1
testing ×1