以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  发布软件是集成造字程序  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=32580)

--  作者:wzh198059
--  发布时间:2013/5/4 14:42:00
--  发布软件是集成造字程序
请教大家:本人用windows的造字程序做了许多特殊字符用在foxtable开发的“机械零件工艺管理软件”中,但是:在不同电脑上无法显示,只有在Dos中用Dos命令复制c:\\windows\\fonts\\中的  eudc.euf 和 eudc.tte 两个文件到不同电脑上相应的目录里才可以,(且是安装了造字程序的电脑商才能正常显示)
问题1:有没有更好的办法实现(机械加工特殊字符处理)
问题2:如何在发布程序是集成安装造字程序并自动更新以上两个文件。

--  作者:Bin
--  发布时间:2013/5/4 14:45:00
--  
不知道打包软件有没这个功能.
如果没有的话可以把文件放到软件目录下.然后在B额forOpenProJEct事件中先判断一下系统目录下是否存在该文件,不存在就复制一份过去即可.
关于文件操作参考帮助http://www.foxtable.com/help/topics/0331.htm

--  作者:狐狸爸爸
--  发布时间:2013/5/4 14:45:00
--  
安装打包软件,应该可以将字体包括在安装包中,安装到目标电脑。
--  作者:wzh198059
--  发布时间:2013/5/4 17:41:00
--  
谢谢大家的帮助!试试看
--  作者:程兴刚
--  发布时间:2013/5/4 18:29:00
--  

 eudc.euf 和 eudc.tte 字符专用文件,在windows打开后部分字符被引用,不管是安装,还是复制粘贴,都会有报错提示,这个还应该需要特殊的方法来处理(期待答案)!


--  作者:wzh198059
--  发布时间:2013/5/5 10:41:00
--  
昨天在另外的电脑上(未安装windows自带的turetype“造字程序”),用dos 命令 copy eudc.euf和eudc.tte 后重新启动系统 成功显示自造特殊字符,在foxtable表格中随意使用,但是 当生成专业报表时  
\'生成相应的零件工艺报表,并保存为pdf格式并保存到
Dim doc As New PrintDoc \'定义一个新报表
Dim rt As New prt.RenderTable \'定义一个新表格
Dim rs As New prt.RenderText() \'定义一个文本对象
rs.Text = "零件工艺卡" \'设置文本对象的内容
rs.Style.Font = New Font("微软雅黑", 12 , FontStyle.Bold) \'设置文本对象的字体
rs.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'文本内容水平居中
doc.Body.Children.Add(rs) \'将文本对象加入到报表中
\'以下插入一个2行5列的表1用于显示零件明细
rt.Style.GridLines.All = New prt.LineDef \'将网格线类型设为默认类型
rt.Rows.Count = 2 \'设置行数为2行
rt.Cols.Count = 5 \'设置列数为5列
rt.Height = "3cm" \'设置表格的高度
rt.Style.Spacing.Top = 8 \'表格和前面对象的垂直间隔为8毫米
rt.Style.Spacing.Bottom = 4 \'表和和后续对象的垂直间隔为4毫米
rt.Cells(0,0).Text = "物料号" \'填入内容
rt.Cells(0,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Cells(0,1).Text = "物料描述"
rt.Cells(0,1).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Cells(0,2).Text = "材质"
rt.Cells(0,2).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Cells(0,3).Text = "归属"
rt.Cells(0,3).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Cells(0,4).Text = "存档日期"
rt.Cells(0,4).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Cells(1,0).Text = Tables("零件信息表").Current("物料号")
rt.Cells(1,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Cells(1,1).Text = Tables("零件信息表").Current("物料描述")
rt.Cells(1,1).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Cells(1,2).Text = Tables("零件信息表").Current("材质")
rt.Cells(1,2).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Cells(1,3).Text = Tables("零件信息表").Current("归属")
rt.Cells(1,3).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Cells(1,4).Text = Tables("零件信息表").Current("存档日期")
rt.Cells(1,4).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
doc.Body.Children.Add(rt) \'将表格对象加入到报表中
\'再次定义一个表格,作为主表格
rt = new prt.RenderTable
Dim tb As Table = Tables("添加窗口_table2")
Dim ColNames As New List(Of String) \'添加要打印的列
Colnames.Add("工序号")
Colnames.Add("工序名称")
Colnames.Add("工序描述")
Colnames.Add("工装_编号")
Colnames.Add("工装_名称")
Colnames.Add("备注")
rt.SplitHorzBehavior = prt.SplitBehaviorEnum.SplitIfNeeded \'表格宽度超出页宽时,可以水平换页
rt.Style.Font = tb.Font
For c As Integer = 0 To ColNames.Count - 1 \'逐列设置和填入内容
    rt.Cells(0,c).Text = ColNames(c) \'列名作为标题
    rt.Cells(0,c).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'标题内容水平居中
    rt.Cols(c).Width = tb.Cols(ColNames(c)).PrintWidth \'列宽等于实际列宽
    If tb.Cols(ColNames(c)).IsNumeric OrElse tb.Cols(ColNames(c)).IsDate Then \'如果是数值或日期列
        rt.Cols(c).Style.TextAlignHorz = prt.AlignHorzEnum.Right \'数据水平靠右
    End If
    For r As Integer = 0 To tb.Rows.Count -1 \'开始填入该列内容
        rt.Cells(r + 1, c).Text = tb.Rows(r)(ColNames(c))
    Next
Next
rt.Style.Gridlines.All = New prt.Linedef(Color.Gray) \'灰色网格线
rt.CellStyle.Spacing.All = 2 \'单元格内距设为2毫米
rt.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'第一行内容水平居中
rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All \'利用行组,将第一行设为表头.
\'如果"附图_编号"列不为空,则插入"附图_图示"图片
For r As Integer = 0 To tb.Rows.count -1
    If tb.Rows(r).IsNull("附图_编号") = False Then
        rt.Rows.Insert(r + 2)\'先插入一空行
        rt.Cells(r+2,0).SpanCols = 6 \'第r此行从第一列开始向右合并6列
        Dim rm As New prt.RenderImage() \'定义一个图片对象
        rm.Image = GetImage(projectpath & "Attachments\\附图_图示\\" & tb.rows(r)("附图_编号") & ".jpg") \'请改为实际的图标名称和路径
        rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center \'图片水平居中
        rm.Style.ImageAlign.AlignVert = prt.ImageAlignVertEnum.Center \'图片垂直居中
        rm.Style.ImageAlign.StretchHorz = False \'禁止水平方向扩展图片
        rm.Style.ImageAlign.StretchVert = False \'禁止垂直方向扩展图片
        rt.Style.GridLines.All = New prt.Linedef(Color.DarkGray) \'将表格的颜色设为深灰色
        rt.Cells(r + 2,0).RenderObject = rm \'将单元格内容设置为图片对象rm
    End If
Next
doc.Body.Children.Add(rt) \'将表格加入到报表
Doc.SavePDF(projectpath & "Attachments\\工艺报表-pdf\\" & Vars("str_wlh") & ".pdf")
DataTables("零件信息表").Save()
DataTables("零件工艺表").Save()
e.Form.Close

报表可以正常以pdf格式显示,单特殊字符 不能正常显示;表格字体又不能设为字符专用文件,怎么办?弄了好几天,请各位高手帮帮忙,有什么好办法?


--  作者:wzh198059
--  发布时间:2013/5/5 18:06:00
--  
自己顶上去,急啊!
--  作者:don
--  发布时间:2013/5/5 18:37:00
--  
没更可行的方法前,可否改用图片?
--  作者:wzh198059
--  发布时间:2013/5/6 10:24:00
--  发布软件是集成造字程序
改成插入图片,保存好像很麻烦,不知狐爸有没有其它办法


--  作者:wzh198059
--  发布时间:2013/5/6 16:15:00
--  
跪求好的特殊字符插入并正常显示的办法!!!!!!!,做个零件工艺管理系统,但是机械加工好多特殊符号插入后保存为pdf格式文件无法正常显示特殊字符,其它倒是正常,因为工艺卡片会更具不同零件需要,在不同位置插入附图,所以只能用专业报表来解决,但是生成的报表不能显示特殊文字。插入图片方式也行不通。期待高人指点,顺便谢谢唐诗三摆首的指点。