我有一个非常奇怪的问题:我正在尝试将包含Unicode字符(希腊语)的Jasper报告导出为PDF.我的问题是,一个特定的希腊字符(字符三角形)打印在与我正在使用的字体(Arial)不同的字体中!
从导出的pdf复制以下图像:

以下图像是使用相同字体的MS Word中的相同文本:

如您所见,第三个字母(delta)与其他字母不同.对于所有字体大小,此信件仅适用于此字母.我也尝试将字体更改为garamond,但仍然遇到完全相同的字母同样的问题!
最后,我应该补充说iReport的内部预览是好的,也可以导出到其他格式,如docx或html ...
更新20/04/11:我还试图用福昕阅读器便携式打开PDF文件,但其行为与Adobe Acrobat Reader完全相同.
更新28/04/11:我在pastebin中创建了一个片段,在导出为pdf时会产生问题.一个警告 - 您必须通过iReport的"选项 - 字体""安装"您将使用的字体(在我的情况下为Arial),否则您将无法在pdf中看到任何内容.
更新05/03/13解决方案:好吧,因为有人(可能来自希腊)仍有同样的问题并查看此问题,我想再次进行更新:我开始再次使用Jasper报告,但现在我正在使用更新版本的Jasper(Jasper 5)和iReport(iReport 5).现在一切正常 - 在PDF中没有问题的增量:)所以如果您遇到同样的问题,请尝试升级您的iReport和Jasper库!
更新05/04/13最终评论:两年后,我能够在有问题的希腊字符(delta)的系统上再次工作,并能够得出关于该问题的最终结论:所以,首先我升级了版本贾斯珀我们使用5.x仍然遇到了问题!只有当我使用从iReport 5.x创建(导出)的新字体扩展名(.jar)更改了包含的字体扩展名(.jar)时,问题才得以解决.因此,问题是当导出字体扩展名时,iReport 3.x(用于导出旧扩展名)没有正确导出希腊字符增量,而iReport 5.x导出它很好.所以我的建议仍然是正确的:任何有此问题的人都会将您的Jasper版本升级到5.x,但也会通过iReprot 5.x重新导出您的字体扩展名.我真的希望我不会再对此更新:)
我使用Windows作为我的主要python 2.7开发环境,我想在虚拟环境中安装python-ldap.
python-ldap包需要编译:(当然我无法在我的环境中编译它.所以我尝试通过easy_install在我的虚拟环境中安装二进制文件(FYI你可以做easy_install package.exe和包将安装).我在这里找到了分布式二进制文件:https://pypi.python.org/pypi/python-ldap/
不幸的是,他们只为python 2.7提供.msi包!为什么人们使用.msi?MSI不能通过easy_install安装.我讨厌MSI%$#$ ^#$ ^#$
是的我可以通过执行它来安装.msi包,但它将安装在全局python包中,而不是安装在我的虚拟环境中!
拜托,有人可以帮帮我吗?我记得在之前的项目中遇到了这个确切的问题,我不得不在虚拟环境之外开发它 - 但我现在不能这样做:(
更新:我在系统范围内安装了python-ldap并将目录ldap和python_ldap-2.4.10-py2.7.egg-info从PYTHON_GLOBAL\Lib\site-packages复制到VIRTUALENV\Lib\site-packages并且似乎正在运行现在.但是我真的不喜欢这个解决方案所以我不会回答我的问题.此外,Alexander关于使用--system-site-packages重新创建virtualenv的评论可能会起作用,但这意味着我需要卸载我的许多全局软件包,然后重新安装我的虚拟软件包等,一般情况下它不是干:(
更新2:在尝试cgohlke的建议之后,我看到MSI的内容是我上面提到的两个目录以及文件dsml.py,ldapurl.py和ldif.py. 所以我也把它复制到了我的VIRTUALENV\Lib\site-packages.现在我相信安装还可以:).但我相信cgohlke是最好的 - 只需使用msiexec.exe将msi的内容直接提取到您的VIRTUALENV.
更新3:在一个类似的问题(在Windows上的virtualenv中安装python-ldap)我发现了一个非常有趣的链接:http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap.在那里你将能够找到python-ldap和其他很多的.EXE安装包!所以最后通过下载这些你将能够easy_install在你的virtualenv他们!
我正在开发一个java-spring项目,我有一个gr.serafeim.domain包含所有域类的包(例如,学生,学校等 - 它们是具体的类).所有这些都通过JPA注释与它们之间有关系.到目前为止一切都很好,但现在我需要为这些类实现需要查询数据库以获得结果的方法.
我该如何实现这些方法?我的第一选择是将它放在域类中,但是为了做到这一点,我需要在所有域类中包含对数据存储库的引用.我不太喜欢这个 - 这是一个很好的设计选择吗?我应该实现我的域类将实现的接口吗?您能否提出更好的解决方案 - 在这种情况下通常的做法是什么?
TIA
我读过有关Spring ACL的内容,但它看起来并不是很有能力.例如:
您使用什么ACL?将ACL与域模型分离是否巧妙?
正是标题所说的.有没有办法在不安装TCL的情况下使用matplotlib库?请不要告诉我咬紧牙关并安装TCL - 我知道如何做到这一点,但我自己(可能是愚蠢的)我不想做的原因.
我不关心显示图,我只想在png中输出它们.我尝试了各种各样的东西(使用不同的后端等),但matplotlib总是想找到tcl工作:(为什么TCL对matplotlib如此重要?
此外,请注意我正在使用Windows - 我已经安装了所有可能需要的东西(numpy,pandas,matplotlib)使用pip.
@ gerrit的解决方案是正确的(我试图改变后端,但是我在加载pyplot 之后就这样做了- 重要的是你需要在使用matplotlib之后立即更改后端).这是一个使用它的小例子:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
fig, ax = plt.subplots( nrows=1, ncols=1 )
ax.plot([0,1,2], [10,20,3])
fig.savefig('foo.png')
plt.close(fig)
这将输出一个名为'foo.png'的文件而不使用TCL\o /
我想以编程方式测量手机中的手机信号强度.我实际上并不关心手机或编程环境:它可以基于Android或Windows Mobile甚至J2ME,可以来自任何制造商(请不要iPhone).但是,它需要是真正的商用手机而不是特殊的测量设备.
这个问题并不像初看起来那么容易.我知道已经存在许多声称能够恢复手机信号强度的方法.其中一些是:
上面的问题是它们只返回一些(小于10)离散值,这意味着,例如,SystemState.PhoneSignalStrength的返回值只能转换为(例如)-100 dbm,-90 dbm, - 80 dbm,-70 dbm和-60 dbm,这对我的应用程序没用,因为我希望尽可能多的精度.
如果有一个无证件的解决方案只能在一部手机上运行,那么无所谓,如果你能告诉我一种我会感激的方式.
提前致谢
我想通过Django创建一个包含unicode数据(希腊字符)的CSV文件,我希望它可以直接从MS Excel打开.在其他地方,我读过有关unicodecsv库的内容,我决定使用它.所以,这是我的看法;
def get_csv(request, id):
response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename=csv.csv'
writer = unicodecsv.writer(response, encoding='utf-16"')
writer.writerow(['Second row', 'A', 'B', 'C', '"Testing"', "????????"])
return response
现在,除了utf-16之外,我真的尝试过编写器的编码参数,包括utf-8,utf-8-sig,utf-8-le,utf-16-le和其他人.每当我用excel打开文件时,我总是看到希腊字符本应该存在的垃圾.
Notepad ++能够毫无问题地打开文件.我究竟做错了什么 ?
更新:这是我在jd回答之后尝试的内容:
import csv
response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename=test.csv'
response.write(u'\ufeff'.encode('utf8'))
writer = csv.writer(response, delimiter=';' , dialect='excel')
writer.writerow(['Second row', 'A', 'B', 'C', '"Testing"', "????????"])
return response
仍然没有运气 - 现在我也可以在Excel中看到BOM(作为垃圾) - 我也尝试使用unicodecsv和一些其他选项,但再次没有工作:(
更新2:我在dda的提议之后尝试了这个:
writer = unicodecsv.writer(response, delimiter=';' , dialect='excel')
writer.writerow(codecs.BOM_UTF16_LE)
writer.writerow([ (u'????????').decode('utf8').encode('utf_16_le')])
仍然没有运气:(这是我得到的错误:
UnicodeEncodeError at /csv/559 'ascii' codec can't encode …
我是MVC风格的javascript库的新手,所以请原谅我这个问题是否太基础了.我正在尝试完全用jQuery和agility.js编写单页面应用程序.agility.js 文档中给出的示例完全包括将html元素添加到文档根目录.问题:是否存在按组件组装页面的"最佳实践"方法.
这是我的html应用程序的大致轮廓:
<html>
<head> ... </head>
<body>
<header> ... </header>
<div id=PageHolder>
<div id=AppPane_1></div>
<div id=AppPand_2></div>
</div>
<footer> ... </footer>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在"AppPane"中,div将是应用程序的内容.
好吧,考虑到所有这一切,我不是在问我能做什么,而是我在问我该怎么做.
我从文档和研究中看到我有3个选择:
jQuery文档就绪块中. $$.document.append(Foo)适用于根元素,但我无法弄清楚如何将Foo的子元素添加到foo.controller的功能(我没有带能够得到任何工作)哪个是最好的,涉及的语法是什么?在此先感谢,任何有关将html组件组装成一个有说服力的敏捷性应用程序的指导将非常感激.
我已经为我的Student域模型创建了一个spring-data-jpa存储库,我想创建一个更复杂的查询,如下所示:
List findBySchoolAndLastNameLikeOrId(School s);
我的问题是我如何定义where子句之间的括号.我的意思是,查询将像这样执行
List findBy(SchoolAndLastNameLike)OrId
或者像这样
List findBySchoolAnd(LastNameLikeOrId)
如何将括号放在我想要的位置或创建更复杂的查询?请不要回答我的自定义存储库实现或@Query注释的使用 - 我想知道我想做什么是可以通过方法名称定义这个复杂的查询.
TIA!
我正在尝试使用HardwarePropertiesManager(https://developer.android.com/reference/android/os/HardwarePropertiesManager.html)访问信息。我正在使用带有以下代码的Android 7.0(API级别24):
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView helloTV = findViewById(R.id.helloTV);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
HardwarePropertiesManager hardwarePropertiesManager = getApplicationContext().getSystemService(HardwarePropertiesManager.class);
CpuUsageInfo[] cpuUsages = hardwarePropertiesManager.getCpuUsages();
///...
Now when my applications finds the hardwarePropertiesManager.getCpuUsages(); line it throws the following exception:
java.lang.RuntimeException: Unable to start activity ComponentInfo{gr.serafeim.sensorplayground/gr.serafeim.sensorplayground.MainActivity}: java.lang.SecurityException: The caller is not a device or profile owner or bound VrListenerService.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
at android.os.Handler.dispatchMessage(Handler.java:102) … java ×3
python ×3
spring ×3
android ×2
jpa ×2
unicode ×2
acl ×1
agility.js ×1
architecture ×1
cpu-usage ×1
csv ×1
django ×1
easy-install ×1
excel ×1
ireport ×1
java-me ×1
javascript ×1
matplotlib ×1
numpy ×1
pdf ×1
python-ldap ×1
spring-data ×1
tcl ×1
virtualenv ×1