我需要从现有的(X)HTML文档自动生成PDF文件.输入文件(报告)使用相当简单的基于表格的布局,因此可能不需要支持真正花哨的JavaScript/CSS内容.
由于我习惯于使用Java,因此最好能够在java项目中轻松使用.但它只需要在Windows系统上工作.
一种方法是可行的,但不能产生高质量的输出(至少开箱即用)是使用CSS2XSLFO和Apache FOP来创建PDF文件.我遇到的问题是,虽然很好地转换了CSS属性,但表格布局非常混乱,文本流出表格单元格.
我还快速浏览了Jrex,这是一个使用Gecko渲染引擎的Java-API.
有没有办法从Internet Explorer渲染引擎中获取渲染页面并自动将其发送到PDF-Printer工具?我没有windows中的OLE编程经验,所以我不知道什么是可能的,什么不是.
你有好主意吗?
编辑:FlyingSaucer/iText看起来很有前途.我会尽力去做.
感谢所有的答案
WPF应用程序很容易使窗口的某些部分透明或半透明.但是如何将当前的Vista主题(颜色,不透明度)应用于这些透明部分?
当我有绿色玻璃边框时,我如何获得相同风格的绿色玻璃背景?
是否可以在不调用Windows API的情况下执行此操作?
我在想这样的事情
有没有办法在C#中的DataTable中找到一个值而不进行逐行操作?
该值可以是([columnName] .value的子字符串,以逗号分隔)数据表中的单元格的一部分,并且该值可以出现在该行的任何一列中.
这个select语句给我算术错误信息:
SELECT CAST(FLOOR((CAST(LeftDate AS DECIMAL(12,5)))) AS DATETIME), LeftDate
FROM Table
WHERE LeftDate > '2008-12-31'
Run Code Online (Sandbox Code Playgroud)
虽然这个工作:
SELECT CAST(FLOOR((CAST(LeftDate AS DECIMAL(12,5)))) AS DATETIME), LeftDate
FROM Table
WHERE LeftDate < '2008-12-31'
Run Code Online (Sandbox Code Playgroud)
数据是否有问题(我检查过空值,但没有)?
以下是tsql查询:
DECLARE @table TABLE(data VARCHAR(20))
INSERT INTO @table VALUES ('not duplicate row')
INSERT INTO @table VALUES ('duplicate row')
INSERT INTO @table VALUES ('duplicate row')
INSERT INTO @table VALUES ('second duplicate row')
INSERT INTO @table VALUES ('second duplicate row')
SELECT data
INTO #duplicates
FROM @table
GROUP BY data
HAVING COUNT(*) > 1
-- delete all rows that are duplicated
DELETE FROM @table
FROM @table o INNER JOIN #duplicates d
ON d.data = o.data
-- insert one row for every duplicate set …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用JavaScript动态设置输入字段的maxlength.显然这是IE中的一个问题,我找到了部分解决方案.
$("input#title").get(0).setAttribute("max_length", 25);
$("input#title").get(0).setAttribute(
"onkeypress",
"return limitMe(event, this)");
function limitMe(evt, txt) {
if (evt.which && evt.which == 8) return true;
else return (txt.value.length < txt.getAttribute("max_length");
}
Run Code Online (Sandbox Code Playgroud)
它适用于Firefox,但出于某种原因不适用于IE.但是,它适用于如下设置的输入字段:
<input type="text" max_length="25" onkeypress="return limitMe(event, this);"/>
Run Code Online (Sandbox Code Playgroud)
但由于输入字段是动态创建的,我不能这样做......有什么想法吗?
我正在使用"Inspector.aspx"在我的Debug构建中进行一些测试.在发布版本中(更重要的是在创建安装程序时),我手动从项目中排除页面(及其相关的C#文件).
有没有办法自动排除ASP.NET项目中选定的解决方案配置中的文件?
C++项目控制每个配置的每个文件的排除/包含
asp.net release release-management visual-studio-2008 visual-studio
我有以下排序数据:
AAA
AAA
TCG
TTT
TTT
TTT
Run Code Online (Sandbox Code Playgroud)
我想计算每个String的出现次数:
AAA 2
TCG 1
TTT 3
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用uniq -c,但在这里我需要对我拥有的整个C++代码进行额外的处理.
我坚持使用这个结构(根据'pgras'建议修改):
#include <iostream>
#include <vector>
#include <fstream>
#include <sstream>
using namespace std;
int main ( int arg_count, char *arg_vec[] ) {
if (arg_count !=2 ) {
cerr << "expected one argument" << endl;
return EXIT_FAILURE;
}
string line;
ifstream myfile (arg_vec[1]);
if (myfile.is_open())
{
int count;
string lastTag = "";
while (getline(myfile,line) )
{
stringstream ss(line);
string Tag;
ss >> Tag; // …Run Code Online (Sandbox Code Playgroud) 我是NHibernate的新手,并尝试使用Fluent进行映射.我的实体类名称与必须映射到的数据库表名称不同.我使用来源于映射类ClassMap<>,但我不能指定表名:属性TableName从ClassMap是只读的.
谢谢你的帮助.