fop js如何拆分字符串一个字符串

访问:10229次
排名:千里之外
原创:63篇
评论:20条
zhouyuyang
(1)(7)(1)(8)(13)(8)(10)(10)(4)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'博客分类:
目前(2011年8月)JPivot的最新版本1.8.0,在PDF格式输出的表格中还不支持中文字体,需要手工添加中文字库。
1. 查看JPivot源码(1.6.0以上)com.tonbeller.jpivot.print.PrintServlet
有一个init()方法
public void init(ServletConfig config) throws ServletException {
super.init(config);
// set base FOP FONT directory.
The font config
stuff will be looked for here
Configuration.put("fontBaseDir", config.getServletContext().getRealPath("/WEB-INF/jpivot/print/"));
// get the physical path for the config file
String fopConfigPath = config.getServletContext().getRealPath("/WEB-INF/jpivot/print/userconfig.xml");
// load the user proerties, contining the CustomFont font.
new Options(new File(fopConfigPath));
} catch (FOPException e) {
e.printStackTrace();
(&FOP user config file not loaded&);
} catch (Exception e) {
e.printStackTrace();
(&FOP user config file not loaded&);
可以看到当打印PDF文档时,系统会尝试去fopConfigPath下加载自定义的font配置文件userconfig.xml
2. OK,我们现在就去添加这么一个FONT configuration,内容为JPivot中定义的Italic/ normal 与中文字体SimHei(黑体)映射关系:
【userconfig.xml】
&configuration&
&font metrics-file="simhei.xml" kerning="yes" embed-file="simhei.ttf"&
&font-triplet name="SimHei" style="normal" weight="normal"/&
&font-triplet name="SimHei" style="normal" weight="bold"/&
&font-triplet name="SimHei" style="italic" weight="normal"/&
&font-triplet name="SimHei" style="italic" weight="bold"/&
&/configuration&
3. 使用Apache FOP(lastest stable version is 1.0.0) 转换windows系统自带的字体库simhei.ttf为xml文件(simhei.xml)
具体方法:
java org.apache.fop.fonts.apps.TTFReader
-ttcname SimHei C:\WINDOWS\Fonts\simhei.ttf simhei.xml
运行成功后生成simhei.xml
将simhei.tff和simhei.xml复制到/WEB-INF/jpivot/print目录下。
4. 编辑/WEB-INF/jpivot/table/fomdxtable.xsl
将SimHei添加为所有font-family的首选值,OK,至此问题搞定!
致谢 参考文档:
浏览: 11237 次
来自: 南京
马马虎虎明白了点。但是,接口,搞成私有的,别的类能使用吗?
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'查看: 15355|回复: 7|关注: 0
怎样将一个cell字符串数组输出到一个csv或txt当中?
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
关注者: 1
b{1,1}='aaaa';
b{1,2}='000';
b{2,1}='cccc';
b{2,2}='111';
csvwrite('b.csv',b);
结果出来的csv文件中,aaaa,000,cccc,111 全被分开了,
a a a a 0 0 0
c c c c 1 1 1
我要的结果是
aaaa& & 000
cccc& &&&111
求助~~~~~~~~
或者有办法讲其输入到一个txt文件中也可以,但是需要对齐换行
就下面这种样子
Simulink 基础讨论版块优秀回答者
关注者: 193
b{1,1}='aaaa';
b{1,2}='000';
b{2,1}='cccc';
b{2,2}='111';
mycell = b
[nrows,ncols]= size(mycell);
filename = 'celldata.txt';
fid = fopen(filename, 'w');
for row=1:nrows
& & fprintf(fid, '%s %s\n', mycell{row,:});
fclose(fid);
单凭文字有歧义,上代码,上截图,上模型
微信: Simulink
<h1 style="color:# 麦片财富积分
关注者: 1
柚籽 发表于
b{1,1}='aaaa';
b{1,2}='000';
非常感谢哥们的帮助!!!
不过我还有一点小问题,就是& &
能否在aaaa与000之间加一个逗号,并且cccc,1111在下一行
Simulink 基础讨论版块优秀回答者
关注者: 193
andyhanxu 发表于
非常感谢哥们的帮助!!!
不过我还有一点小问题,就是& &
b{1,1}='aaaa';
b{1,2}='000';
b{2,1}='cccc';
b{2,2}='111';
mycell = b
[nrows,ncols]= size(mycell);
filename = 'celldata.dat';
fid = fopen(filename, 'w');
for row=1:nrows
& & fprintf(fid, ['%s',',','%s','\n'], mycell{row,:});
fclose(fid);
在中间加个,号就可以了。
把文件名改成.dat
刚刚也没注意,改成txt就似乎识别不了换行符了?
单凭文字有歧义,上代码,上截图,上模型
微信: Simulink
<h1 style="color:# 麦片财富积分
关注者: 1
柚籽 发表于
b{1,1}='aaaa';
b{1,2}='000';
已解决!非常感谢
<h1 style="color:# 麦片财富积分
b{1,1}='aaaa';
b{1,2}='000';
请问为什么txt不能识别换行符。。
<h1 style="color:# 麦片财富积分
b{1,1}='aaaa';
b{1,2}='000';
有没有办法使b{1,1}和b{2,1}长度不一定相等的时候也保证上下行对齐?就像:
'aaaa' '000'
'bb'& & '001'
'ccc'& &'002'
<h1 style="color:# 麦片财富积分
有没有办法使b{1,1}和b{2,1}长度不一定相等的时候也保证上下行对齐?就像:
'aaaa' '000'
'bb'& & '001'
加上'\t'就可以了
站长推荐 /2
基于模型设计的需求管理和验证
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区由于项目的需要,从MFC转移到QT进行开发
首先要实现,MFC上的CString字符串操作要换成QString
将图片从一个文件拷贝到另一个文件夹, 以前是这样写的:
//void folderMove(CStringW origPath, CStringW goalPath)
//&SHFILEOPSTRUCT
//&ZeroMemory(&fop, sizeof fop);
//&fop.wFunc = FO_COPY;
//&//origPath &#43;= '\0';
//&//goalPath &#43;= '\0';
//&fop.pFrom = origP
//&fop.pTo = goalP
//&SHFileOperation(&fop);
改成了如下操作:
bool folderMove(QString sourceDir, QString toDir, bool coverFileIfExist)
&//toDir.replace(&\\&, &/&);
&if (sourceDir == toDir){
&if (!QFile::exists(sourceDir)){
&QDir *createfile = new QD
&bool exist = createfile-&exists(toDir);
&if (exist){
&&if (coverFileIfExist){
&&&createfile-&remove(toDir);
&}//end if&
&if (!QFile::copy(sourceDir, toDir))
但是,没有任何图像被移动,原来,QT移动文件,不但需要指定原始地址的完全路径,而且需要指定目标地址的文件路径,但是目前无法得到被移动图片的
具体文件名,所以用如下函数获得图片的文件名:
&QString file_fullpath = &.\\a\\1.bmp&, file_
&QFileInfo&
&//file_fullpath = QFileDialog::getOpenFileName(this);
&info = QFileInfo(file_fullpath);
&file_name = info.fileName();
&#65279;&#65279;
本文已收录于以下专栏:
相关文章推荐
只是简单地写了两个函数,第一个函数是将一个文件从oldpath copy到newpath.
拷贝文件夹调用了拷贝文件的方法,将文件夹中的每一个文件依次拷贝过去,具体的代码如下:
从下面的代码中...
package cn.zby.
import java.io.BufferedInputS
import java.io.BufferedOutputS
package com.heima.import java.io.BufferedInputS
import java.io.BufferedOutputS
经过四五天的编写与调试,初步完成了文件操作工具的内容,以下是代码说明:
首先,我测试用的文件在/home/xudong/mywork下,我的最终生成文件是在这个路径下,/home/xudong/wo...
用途:文件转移——把层层嵌套的文件夹下的所有文件单拎出来,放入新的文件夹。比如 文件夹1 下有 文件夹2,文件夹2 下有
1.txt文件 和 3文件夹,3文件夹 下有2.txt 3.txt
现在要把...
这个需求不要用cp命令了,因为那牵扯到太多的正则表达式,太复杂。简单一点的方法是用rsync命令。
用法示例:
rsync -av --progress a/ b/ --exclude 3/
以上命令...
他的最新文章
讲师:李江龙
讲师:司徒正美
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
新Visual C++ 6.0实例教程 电子教案 第6章.ppt 37页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
&#xe600;下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:120 &&
你可能关注的文档:
··········
··········
文件操作类CFile
使用CFile类进行文件读写、删除、改名及访问文件属性. 1. 文件的打开与关闭
(1)文件打开函数Open BOOL Open(LPCTSTR lpszFileName,
UINT nOpenFlags, CFileException* pError = NULL); 参数lpszFileName:为欲打开的文件名,文件名可以包含路径和文件名两部分。如“d:\\bak\\test.txt”, 如果此字符串不包含文件路径,如“test.bak”,则系统默认为当前路径,即生成的可执行文件所在目录。 参数nOpenFlags:用于设置访问模式,指定当打开文件时进行的动作,可以将以下所列模式用按位或“|”操作符连接起来。至少应有一个访问模式,modeCreate是可选的。以下是常用参数列表:
CFile::modeCreate:调用构造函数构造一个新文件。 CFile::modeRead?: 打开文件仅供读。 CFile::modeReadWrite:? 打开文件供读/写。 CFile::modeWrite:?? 打开文件仅供写。 CFile::typeText: 设置文本文件模式(只能用在子类中)。 CFile::typeBinary:设置二进制文件模式(只能用在子类中)。 参数 pError:是一个异常类的指针,可通过该类和函数的返回值来确定函数是否调用成功,如下表所示。 1. 文件的打开与关闭
注意:参数 pError为CFileException类型。而CFileException是异常类的一种,用于检测文件操作中可能出现的错误。关于异常类,将在第八章进行详细的介绍。 例如: CFile
if (!f.Open(“D:\\bak\\test.txt”, CFile::modeCreate | CFile::modeWrite))
1. 文件的打开与关闭
(2)用于打开文件的构造函数 CFile(LPCTSTR lpszFileName, UINT nOpenFlags) throw( CFileException ); 如: CFile f(“D:\\bak\\test.txt”, Cfile::modeRead); 注意:构造函数没有返回值,当打开文件出错时只是产生一个异常。所以不能象函数那样通过分支语句来保证文件已打开,而应使用TRY/CATCH宏来判断。 例: CString
strFileName = “D:\\bak\\test.txt”; TRY {
CFile f(strFileName,CFile::modeCreate | CFile::modeWrite); } CATCH(CfileException
#ifdef_DEBUG
afxDump&&″文件不能打开!″&&e-&m_cause&&″\n″;
#endif }END_CATCH 1. 文件的打开与关闭
(3)成员函数Close 定义:void Close();
Close函数用于关闭由Open函数打开的文件。使用Open函数打开文件后,应使用Close函数释放文件句柄及缓冲区的资源。
打开文件和关闭文件的例子。 CFile f; if
(!f.Open(“D:\\bak\test.txt”, CFile::modeRead)) {
MessageBox(“打开文件失败!”);
} f.Close();
文件的读写
(1)读写函数
virtual UINT Read (void* lpBuf,
UINT nCount) ;
throw(CFileException); Read函数返回值是传输到缓冲区的字节数。 参数lpBuf:指向用户提供的缓冲区以接收从文件中读取的数据。 参数nCount:为可以从文件中读出字节数的最大值。 注意:对所有CFile类,如果到达文件尾,则返回值可能比nCount小。
virtual void Write(const void* lpBuf, UINT nCount);
throw (CFileException); Write函数的参数与Read函数的参数类似。 参数lpBuf:指向用户提供的缓冲区,包含将写入文件中的数据。 参数nCount:从缓冲区内传输的字节数。 Write在几种情况下均产生异常,包括磁盘满的情况、磁盘为写保护状态等。 注意:CFile类并没有提供类似EOF
正在加载中,请稍后...

我要回帖

更多关于 matlab如何拆分字符串 的文章

 

随机推荐