标签: rendering

在代码中从.rdlc导出PDF时,如何提高LocalReport.Render方法的性能?

我想在代码级别渲染大的非图形报告(数千页),省略了ReportViewer从.rdlc文件中阻塞浏览器的控件.当我测试渲染一个2000页的报告时,该Microsoft.Reporting.WebForms.LocalReport.Render方法需要大约半小时才能完成,这被认为是糟糕的用户体验.

是否有任何技巧或替代解决方案来提高渲染性能:在代码中,重新设计.rdlc文件或其他地方,例如,只是增加硬件?

示例代码:

LocalReport localReport = new LocalReport();
localReport.ReportPath = Server.MapPath("~/report.rdlc");

SetDataSources(ref localReport);

string reportType = "PDF";
string mimeType;
string encoding;
string fileNameExtension;

string deviceInfo =
"<DeviceInfo>" +
"  <OutputFormat>PDF</OutputFormat>" +
"  <PageWidth>8.5in</PageWidth>" +
"  <PageHeight>11in</PageHeight>" +
"  <MarginTop>0in</MarginTop>" +
"  <MarginLeft>0in</MarginLeft>" +
"  <MarginRight>0in</MarginRight>" +
"  <MarginBottom>0in</MarginBottom>" +
"</DeviceInfo>";
}

Warning[] warnings;
string[] streams;
byte[] renderedBytes;

//Render the report
renderedBytes = localReport.Render(
            reportType,
            deviceInfo,
            out mimeType,
            out encoding,
            out fileNameExtension,
            out streams,
            out warnings);
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助,提前感谢!

c# pdf rendering reportviewer localreport

10
推荐指数
1
解决办法
4737
查看次数

在浏览器中渲染语言语法树

输入是:

(1)带有标记内部节点的树的括号表示,例如:

(S (N John) (VP (V hit) (NP (D the) (N ball))))
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

(线是否为虚线以及标题是否存在并不重要.)

或输入可能是:

(2)对没有标签的单词进行包围,例如:

((John) ((hit) ((the) (ball))))
Run Code Online (Sandbox Code Playgroud)

输出与上面相同(这次没有内部标签,只有树形结构).

输入的另一个组成部分是树是标记为(1)还是未标记为(2).


我的问题:在javascript中在浏览器中呈现这些树的最佳方式(最快的开发时间)是什么?一切都应该发生在客户端.

我想象一个简单的界面只有一个文本框(和一个单选按钮,指定它是否是标记的树),当更改时,触发树渲染(如果输入没有任何语法错误).

javascript rendering nlp linguistics

10
推荐指数
2
解决办法
905
查看次数

在Web开发的上下文中呈现

我不太了解在Web开发环境中渲染的含义.当我阅读有关浏览器体系结构的内容时,渲染就是从互联网上显示获取的内容.另一方面,有客户端和服务器呈现的定义(没有提到浏览器).例如,在Backbone.View类中,我们有渲染方法,负责将数据与标记连接.

在Web开发上下文之外,有一个Wiki定义:

渲染是通过计算机程序从模型(或者可以统称为场景文件的模型)生成图像的过程.此外,这种模型的结果可以称为渲染

如何正确理解这个概念?

谢谢.

rendering

10
推荐指数
2
解决办法
1万
查看次数

Windows从多图标文件中选择错误的图标,并自我渲染到正确的大小

我有一个嵌入了5个图标大小的.ico文件,用作主应用程序图标和系统托盘图标.

当它出现在任务栏中时,图标使用所需的16x16格式.当图标显示在通知区域/系统托盘中时,它使用32x32格式,Windows将其渲染为16x16图标,这看起来很糟糕.

如何强制窗口在通知区域中使用16x16图标大小?这是我将代码放入系统托盘的代码:

ContextMenu cmNotify = new ContextMenu();
MenuItem miNotify = new MenuItem(Properties.Resources.Notify_Text);
miNotify.DefaultItem = true;
miNotify.Click += new EventHandler(notifyHandler);
cmNotify.MenuItems.Add(miNotify);


notifyIcon = new NotifyIcon();
notifyIcon.Icon = this.Icon;
notifyIcon.Visible = true;
notifyIcon.ContextMenu = cmNotify;
notifyIcon.Text = AppConstants.APPLICATION_NAME;
Run Code Online (Sandbox Code Playgroud)

.net windows icons rendering

9
推荐指数
2
解决办法
2514
查看次数

django模板中的转义问题

假设我有这个字符串:

s = '<p>Hello!</p>'
Run Code Online (Sandbox Code Playgroud)

当我将此变量传递给模板时,我希望它呈现为原始html.查看文档,我看到我可以使用安全过滤器:

{{s|safe}}
Run Code Online (Sandbox Code Playgroud)

或禁用autoescape:

{%autoescape off}
{{s}}
{%endautoescape%}
Run Code Online (Sandbox Code Playgroud)

或者在python代码中声明它是安全的:

from django.utils.safestring import mark_safe
s = mark_safe(s)
Run Code Online (Sandbox Code Playgroud)

这些选项都不适用于我.无论我做什么,字符串显示为:

<p>Hello!</p>
Run Code Online (Sandbox Code Playgroud)

我一定是错过了什么,只是弄不清楚是什么.是否存在某些不允许逃避的安全设置?

编辑:奇怪,我重新启动计算机后问题似乎消失了.

html python django rendering django-templates

9
推荐指数
2
解决办法
9317
查看次数

directx中许多不同复杂对象的典型渲染策略?

我正在学习directx.它在如何做事方面提供了大量的自由,但可能不同的状态不同表现不同,并且它对于表现良好的使用模式提供的指导很少.

使用directx时,通常需要在每次渲染时多次交换一堆新数据吗?

使用它的最明显,也可能是非常低效的方式就是这样.

Stragety 1

在每个渲染上

  1. 加载模型0(包括纹理)的所有内容并渲染它(IASetVertexBuffers,VSSetShader,PSSetShader,PSSetShaderResources,PSSetConstantBuffers,VSSetConstantBuffers,Draw)

  2. 加载模型1的所有内容(包括纹理)并渲染它(IASetVertexBuffers,VSSetShader,PSSetShader,PSSetShaderResources,PSSetConstantBuffers,VSSetConstantBuffers,Draw)

  3. 等等...

我猜你可以提高效率,如果要加载的最大东西都是专用插槽,例如,如果模型0的纹理真的很复杂,不要在每一步重新加载它,只需将它加载到插槽1中并保留它那里.当然,因为我不确定DX11中每种类型的寄存器有多少,所以这很复杂(任何人都可以指出这方面的文档吗?)

Stragety 2

选择一些纹理槽用于加载,其他纹理槽用于永久存储最复杂的纹理.

只有一次

将最复杂的模型,着色器和纹理加载到专用于永久存储的插槽中

在每个渲染上

  1. 使用您预留的用于加载和渲染的插槽加载模型0不存在的所有内容(IASetVertexBuffers,VSSetShader,PSSetShader,PSSetShaderResources,PSSetConstantBuffers,VSSetConstantBuffers,Draw)

  2. 使用您预留用于加载和渲染的插槽加载模型1中尚未存在的所有内容(IASetVertexBuffers,VSSetShader,PSSetShader,PSSetShaderResources,PSSetConstantBuffers,VSSetConstantBuffers,Draw)

  3. 等等...

策略3 我不知道,但上面的内容可能都错了,因为我真的很陌生.

有效渲染directx(特别是DX11)以使其尽可能高效的标准策略是什么?

directx graphics rendering directx-11

9
推荐指数
1
解决办法
5347
查看次数

在Java应用程序中进行TeX渲染

我想在我的Java GUI应用程序中呈现数学公式.我正在寻找一个供计算机使用的库,而不是Web使用,它可以渲染TeX.我已经尝试过jLatexMath,但是当我在我的应用程序中使用它时它非常慢.

如果还有其他/更好的,你能指出我正确的方向吗?

(如果这个问题属于TeX论坛,我会把它移到那里)

java latex rendering tex

9
推荐指数
0
解决办法
1750
查看次数

在把手中的助手内渲染模板

大家好!

因为似乎没有答案:通过把手部分传递变量,我正在努力解决这个问题.因此,我们的想法是注册一个辅助函数,该函数使特定模板具有可能的值.一些代码使得理解更好.

这是我如何调用我的助手:

<div>
    {{myHelper}}
</div>
Run Code Online (Sandbox Code Playgroud)

这个帮助器注册了这个小代码:

hbs.registerHelper(name, function (args) {
    args = args || {};
    var template = hbs.compile(fs.readFileSync(__dirname + '/' + file, 'utf8'));
    return template(args);
});
Run Code Online (Sandbox Code Playgroud)

我把这个snippiet放到一个循环中,一次注册不同的帮助器.这意味着给出了'name'和'file'.

好的,现在我可以做这样的事情:

// 'values' could be something like this:

var values = { headline: 'HEADLINE' }

<div>
    {{myHelper values}}
</div>
Run Code Online (Sandbox Code Playgroud)

在帮助器中,我现在可以测试是否给出了某些值:

// myHelper template

<div>
    {{#if headline}}
    <h1>{{headline}}</h1>
    {{/if}}
    <p>Lorem ipsum</p>
</div>
Run Code Online (Sandbox Code Playgroud)

这个小小的解决方法适合我,但有一个问题.如上所述注册助手,返回纯HTML转义字符串.因此,调用帮助程序不会输出呈现的HTML代码段.它将HTML作为转义字符串输出.

你有没有人知道如何让我的代码片段将HTML作为HTML返回?

/帕斯卡尔

html rendering templating helpers handlebars.js

9
推荐指数
2
解决办法
1万
查看次数

如何修改Redcarpet Markdown以便它可以处理类?

我在我的Rails网站上使用Redcarpet Markdown.通常我想将类(或其他属性)添加到段落,表或其他元素中,但它不允许它.如果我用HTML替换markdown元素,那么我也需要用HTML替换内部markdown,这是一个麻烦.

例如,我想将类"table"添加到markdown表元素(因此它得到了Bootstrap的表样式),但是我需要用HTML替换Markdown表.

什么是最简单的解决方案?有没有一种简单的方法来修改Markdown以便它可以处理类?或者,有没有办法在HTML元素中允许Markdown?

示例更新

我想在div,table或paragraph中添加一个类,但仍然在元素中保留markdown.例如,我想生成以下HTML:

<p class="cool">
  <b>Hello world</b> <a href="http://google.com">Google</a>
</p>
Run Code Online (Sandbox Code Playgroud)

有两种可能的解决方案,但我不知道如何使用Redcarpet Markdown进行解决方案:

  1. 获取类的特殊markdown语法,例如:

    {class: cool}
    **Hello world** [Google](http://google.com)

  2. 允许Markdown在HTML元素中工作:

    <p class="cool">
    **Hello world** [Google](http://google.com)
    </p>

目前我只是在纯HTML中做这些元素而没有降价.但是我怎样才能让#1或#2工作?

markdown rendering ruby-on-rails redcarpet github-flavored-markdown

9
推荐指数
1
解决办法
2736
查看次数

在服务器请求之后测量JSF视图的渲染时间

我想测量JSF应用程序的渲染时间.由于我的权力原因,应用程序无法填充日志.

因此,我的问题是,在使用任何浏览器执行包含后端(服务器)调用的特定操作之后,有什么方法可以衡量应用程序的呈现时间?

到目前为止,在使用Chrome开发者工具后,我发现了以下内容.在"网络"选项卡上,每个请求都显示"时间".此外,在选择某个条目后,在"定时"选项卡上,将显示更详细的可视化.现在,我可以从中了解到,"Waiting"表示它在这里捕获到服务器的往返,但是实际的渲染时间呢.

假设整个请求耗时1秒,等待部分耗时500毫秒,我能否推断渲染时间是1秒-500毫秒?我不这么认为,这就是我问这个问题的原因.

简而言之,我需要从浏览器中了解服务器处理需要多长时间以及实际UI渲染时间.

任何提示将非常感谢.谢谢.

rendering performance-testing jsf-2 google-chrome-devtools

9
推荐指数
1
解决办法
1890
查看次数