我有一个网站,它使用SVG作为交互式客户端thingamabob.我想提供下载完成输出的PDF的选项.我可以将最终的SVG输出传递回服务器,我想将其转换为PDF,然后将其返回给客户端进行下载.
这将需要在无头共享Linux服务器上工作,其中安装或编译要么是巨大的痛苦,要么是不可能的.该网站是PHP,因此理想的解决方案是PHP,或使用易于安装在共享网络服务器上的软件.可以使用Python,perl和ruby,以及你在linux盒子上可能会遇到的常见事情.涉及cairo,脚本inkscape或比"FTP up"更复杂的安装的解决方案可能已经完成.花费大量资金也很自然.由于这是一个共享服务器,内存和/或CPU饥饿的解决方案也已经淘汰,因为它们往往会被杀死; 这或多或少地排除了蜡染.
到目前为止,我最接近的是这个XSL转换,我可以从PHP驱动,然后通过ps2pdf(已经安装)喷出生成的postscript.唯一的问题是它不支持SVG路径 - 如果确实如此,它将是完美的.
StackOverflow上有很多或相关的问题,我已经读完了所有这些问题,但他们都认为你可以安装东西,花钱,或两者兼而有之.
有没有人有这个现成的解决方案,或者我是否应该花一些停机时间尝试为该XSL转换添加路径支持?
谢谢,Dunc
想象一下,你生活在一个非常简单的例子中 - 想象一下你的MySQL数据库中有一个人员表:
create table person (
person_id int,
name text
)
select * from person;
+-------------------------------+
| person_id | name |
+-------------------------------+
| 1 | Alice |
| 2 | Bob |
| 3 | Carol |
+-------------------------------+
Run Code Online (Sandbox Code Playgroud)
这些人需要协作/一起工作,所以你有一个链接表,将一个人的记录链接到另一个人:
create table person__person (
person__person_id int,
person_id int,
other_person_id int
)
Run Code Online (Sandbox Code Playgroud)
这种设置意味着人们之间的链接是单向的 - 即Alice可以链接到Bob,而Bob没有链接到Alice,更糟糕的是,Alice可以链接到Bob , Bob可以同时链接到Alice,在两个单独的链接记录中.由于这些链接代表了工作关系,在现实世界中它们都是双向的相互关系.以下是此设置中的所有内容:
select * from person__person;
+---------------------+-----------+--------------------+
| person__person_id | person_id | other_person_id |
+---------------------+-----------+--------------------+
| 1 | 1 | 2 |
| 2 | 2 …Run Code Online (Sandbox Code Playgroud) 您好,我一直在理解为MS Office部署主互操作程序集(PIA)的一些复杂性.我在VS 2008中使用纯com技术构建了Visual Studio Com Add-IN(不是VSTO,请参阅下面的内容以获取更多信息),它引用了2003主互操作程序集,但加载项可以在2003,2007或2010现在使用办公机器.因为我从来不知道客户是使用2003,2007还是2010,所以我不能简单地部署一个PIA版本作为先决条件(除非我做了3个我不想做的安装程序).现在,我的理解是,当你按照这里的步骤要将2003和2007 PIA添加到Visual Studio(2008)安装程序包中显示的先决条件列表,先决条件足够聪明,可以确定您要定位的客户端上运行的是哪个Office版本.因此,如果要选择2003主互操作程序集和2007主要iterop程序集作为先决条件,那么当它安装在具有2003的计算机上时,它应该足够智能,只有在这台计算机上缺少这些PIA时才尝试添加2003 PIA.如果这是一台2007 Office机器,那么它只会安装2007 PIA(而不是尝试安装2003 PIA).
问题1是正确的理解(前提条件包是智能的,只能根据Office的版本安装它需要的东西吗?)
问题2是否有办法让2010 PIA显示在VS 2008的先决条件列表中,如2003和2007呢?我不想将此项目升级到VS 2010 b/c它现在被认为是一个遗留应用程序,来自世界各地的许多客户使用它.
问题3即使实际程序集引用了2003主要的interops,我现在也不会将这些interops与加载项一起部署到安装位置.相反,我假设如果我能安装正确的PIA,那么在安装路径中我不需要这个,因为PIA将在GAC中.但是,一种可能的方法可能只是在安装路径中包含引用的2003程序集(在我的例子中是excel和word),而不用担心PIA.我怀疑这可能适用于2003年的机器,但可能不会在2007年和2010年的机器上运行后者,即使在程序集的安装路径中运行时发现2003引用的interop,我想如果没有GAC中的Policy.11.0.Microsoft.Office.Interop.Excel/Word(等),然后2007年和2010年可能不知道如何处理11.0(2003)interops(因为我认为Policy.11.0.Microsoft.Office.Interop文件将2003 interops的请求重定向到2007或2010).有什么想法吗?
问题4: Framework 2.0应用程序Office加载项和Office 2003存在一个众所周知的错误,即加载项无法加载.KB907417又称KB908002解决了这个问题.如果您在3.0或3.5框架上开发(并使3.0或3.5成为先决条件),那么任何人都知道这个KB是否必要,因为这个问题特定于框架2.0?或者KB仍然需要部署b/c它的office 2003是问题而不是框架的版本?
正如您在3个问题中所说,我想确定的是我们是否可以通过VS设置实用程序构建一个单独的安装程序.如果PIA可以使用一个安装程序完成,但上面的KB是障碍(也许答案会回来,即使在3.0或3.5框架2003客户将需要KB),那么一个安装程序的路径可能只是制作KB是一个全面的先决条件,并将其安装在2007或2010机器上,尽管它们在技术上并不需要它们.关于该选项的任何想法也将受到赞赏.最后,我知道为excel或word编写一个manged Com Add-IN现在通常使用VSTO而不是纯托管框架代码完成,但是目前这不是将遗留应用程序更改为此方向的选项.另据报道4.
我有一个大型复杂的 Ansible 配置设置,> 100 个角色,> 30 个库存组等......这是按照推荐的方式组织的:顶级剧本,带有/roles文件夹,/group_vars文件夹等......
有时这会中途失败,我想使用--start-at-task命令行开关从失败的地方重新启动它。
但是,我有几项任务总是需要运行。这些动态地将主机添加到清单中,设置稍后需要的变量等......
有没有办法强制始终运行任务- 或始终应用角色,即使在使用时--start-at-task?
我知道always标签,但我认为这只会在使用过滤任务时运行--tag,而不是--start-at-task- 除非有人知道不同?
或者,是否有其他方法来构建可以避免此问题的事物--start-at-task?
我有一个XML文档,格式为...
<?xml version="1.0" encoding="UTF-8"?>
<yahootable>
<row>
<various><![CDATA[ multiline
text, "&"
other <stuff> ]]>
</various>
<id>1</id>
<message><![CDATA[
sdfgsdfg
dsfsdfsd ]]>
</message>
</row>
<yahootable>
Run Code Online (Sandbox Code Playgroud)
...并且想要使用MySQL的LOAD XML LOCAL INFILE将其插入具有列的表中;(各种,ID,消息)。我似乎无法从未解析的CDATA标记中获取任何数据到数据库列中。是CDATA标记之间的数据被完全忽略,还是我错过了某些事情?我期望CDATA会转义非法的XML字符并将其作为常规文本插入。
谢谢。
ansible ×1
cdata ×1
deployment ×1
linux ×1
many-to-many ×1
ms-office ×1
mysql ×1
office-pia ×1
pdf ×1
svg ×1
xml ×1