小编Jus*_*ier的帖子

Office文档为PDF

我已经看到了一些关于这个的线索,但在我的搜索中没有得到非常直接的答案.我有一个Web应用程序需要接受doc,docx,xl​​s,xlsx文件并将它们转换为PDF.现在我们有一个使用Microsoft.Office.Interop.Word库的进程,它打开文档,将其打印到PS文件,然后GPL GhostScript将PS文件转换为PDF.

这个过程很有效,但总体而言有几个步骤,这最初是在几年前开发的,当时找到PDF打印驱动程序并将其连接起来更加困难.本着更新的精神,我正在寻找一种可能更好的方法来处理这个问题.主要原因是在我们的应用程序中,我们使用Web服务调用来执行转换过程的提升操作,使用较新的Windows服务器,特别是用于开发的Window 7,即使模拟也打开文件的能力导致一些问题使用Interop库.

所有这些我肯定可以理解并解决,但我想知道是否有更新更好的方法来解决这个问题.我已经研究过PDF995,但是我没有找到一种以编程方式进入并直接将文件打印到PDF的好方法.他们提供的代码是用C++编写的,我没有找到如何模仿C#中的调用.

.net c# asp.net office-interop pdf-conversion

7
推荐指数
1
解决办法
6560
查看次数

使用带路由的ngUpgrade引导Angular 2 rc.6混合应用程序

我有一个Angular 1/Angular 2混合应用程序正在使用rc.3和不推荐的路由器.从我能找到的所有资源中,rc.5是迈向新路由器的重要一步.我可以启动我的混合应用程序,并渲染我的根组件,但路由不起作用.

var upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));

angular.module('ng1App', [])
  .directive('myBaseComponent', <any>upgradeAdapter.downgradeNg2Component(MyBaseComponent));

@NgModule({
  imports: [BrowserModule, routing],
  providers: [appRoutingProviders, HTTP_PROVIDERS],
  declarations: [MyBaseComponent,
    MyNG2RoutableComponent]
})
class AppModule { }


upgradeAdapter.bootstrap(document.body, ['ng1App']).ready(function(){
  console.log('bootstraped!');
});
Run Code Online (Sandbox Code Playgroud)

我的根NG2组件引导,因为我可以在它呈现的模板中抛出东西.但是,当我添加它时,它似乎<router-outlet></router-outlet>不会渲染子路径.如果我在没有upgradeAdapter的情况下仅启动我的NG2应用程序,一切都按预期工作.

我觉得我只缺少一个连接件.有任何想法吗?


Angular RC.6和路由器RC.2更新

我上周升级到rc.6和rc.2版本的路由器,同样的问题.当不涉及路由时,UpgradAdapter非常有用.一旦我拉入路由器插座,然后没有任何渲染,没有错误.

javascript angular-routing ng-upgrade angular

7
推荐指数
1
解决办法
541
查看次数

SSIS ISNULL为空字符串

所以我目前正在使用SSIS 2008从旧的Advantage数据库服务器迁移到SQL 2005.旧的Advantage数据库中的一个列是MEMO类型.默认情况下,这会转换为DT_TEXT列.好吧,在新数据库中,我不需要这么大的字段,但可以将其限制为诸如VARCHAR(50)之类的东西.我成功设置了一个派生列转换,使用以下表达式对其进行转换:

(DT_STR,50,1252)[ColumnName]
Run Code Online (Sandbox Code Playgroud)

现在我想更进一步,用空字符串替换所有NULL值.使用ISNULL([ColumnName])?"":(DT_STR,50,1252)[ColumnName]表达式似乎很容易,但问题是OLE DB目标包含以下错误

无法在unicode和非unicode字符串之间进行转换...

显然,整个ISNULL表达式将数据类型转换为Unicode字符串[DT-WSTR].我已经在整个表达式或不同的部分上尝试了各种演员表,但我无法获得与我需要的数据类型相匹配的数据类型.

首先,是否可以将DT_TEXT类型直接转换为unicode?据我所知,演员阵容不会这样.如果没有,有没有办法让表达式工作,以便将NULL值转换为空字符串?

谢谢你的帮助!

ssis data-migration advantage-database-server

6
推荐指数
1
解决办法
7865
查看次数

表单身份验证跨应用程序没有cookie

我有两个申请.第一个是需要身份验证的ASP.NET 4 MVC应用程序.第二个是应用程序,它将处理身份验证并设置表单身份验证cookie.

在授权应用程序上,我打电话

FormsAuthentication.SetAuthCookie(username, false);
Run Code Online (Sandbox Code Playgroud)

然后我做一个简单的Response.Redirect回到我的MVC应用程序.

在MVC应用程序中,我正在制作一个继承自AuthorizeFilter的自定义过滤器.在OnAuthorization方法上,我打算解密cookie并从授权用户那里获取一些额外的用户数据.

我的问题是,那

HttpContext.Current.Request.Cookies
Run Code Online (Sandbox Code Playgroud)

什么都没有.我已经检查了fiddler,并且身份验证应用程序正确设置了cookie,MVC应用程序获取了cookie,但是当它到达我的过滤器时,那里什么都没有.

我的web.config在两个应用程序中都具有完全相同的设置:

      <forms
    name=".ASPXFORMSAUTH"
    protection="All"
    path="/"
    timeout="30"
    enableCrossAppRedirects="true"
    domain="localhost"/>
Run Code Online (Sandbox Code Playgroud)

并且我已使用相同的machineKey设置两者以便能够解密cookie.问题是,我在我的MVC过滤器中的OnAuthorization方法中没有看到任何cookie.

现在,两个应用程序都在我的本地IIS实例上运行.

c# asp.net cookies asp.net-mvc forms-authentication

6
推荐指数
1
解决办法
2846
查看次数

ReactJS数据流具有深层次数据

我正在探索ReactJS并试图掌握核心概念.我开始拼接我正在处理的应用程序的原型,该应用程序具有以下层次结构

  • 顾客
    • 地点
      • 地址
      • 往来

我正在处理的页面将是客户及其所有相关子项的输入表单.这些部分中的每一部分都有一些文本输入来存放数据,因此它们看起来像是容纳组件层次结构的自然场所.

从我读过的关于ReactJS的所有内容中,如果你要管理状态,你应该在所有控件的共同祖先中这样做.这意味着孩子的任何变化都应该将事件冒充到州的管理者处理变化.然后应该更新状态,并且将重新呈现任何更改.这在简单的场景中是有意义的,但这使我进入了稍微复杂的层次结构.

  • 如果在多个地址中的某个地址发生变化,我是否应该将该事件冒泡到该位置然后再向客户冒泡?
  • 如果是这样,告诉状态哪个特定地址发生变化的最佳方法是什么?
  • 如果你必须通过层次结构的每个级别调用,那么传播一个简单的更改会不会产生很多额外的样板?
  • 我应该在每个文本框中附加onChange事件,还是应该等到我提交表单来收集数据?

React谈到ReactLink(https://facebook.github.io/react/docs/two-way-binding-helpers.html)作为一种管理更复杂的数据绑定的方法,但没有给出一个很好的例子来说明如何使用更大的层次结构来管理它.此外,它声明大多数应用程序不应该需要这个.好吧,这个应用程序确实不复杂,只有几个嵌套控件具有共享状态.这就是React应该闪耀的地方,所以我不会想到立即跳到边缘案例解决方案.

javascript data-binding flux reactjs

5
推荐指数
1
解决办法
923
查看次数

具有多租户Hibernate的Spring-Data JPA

我试图让Spring-Data JPA与Hibernate一起使用自定义MultiTenantConnectionProvider.

以下配置中的所有内容似乎都有效.MultiTenantConnectionProviderImpl每次我尝试调用Repository方法时都会调用我的类.

主要问题是无法提供租户标识符.Spring-Data提供的Repository接口负责获取Hibernate Session.

有没有办法为Spring-Data提供租户标识符?或者在某处我们可以拦截Hibernate会话的创建,以便我们可以适当地调用 sessionFactory.withOptions().tenantIdentifier(itendintifier).openSession();

这是我的Spring配置XML文件.我试图尽可能保持它的骨架.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">

    <context:annotation-config/>
    <context:component-scan base-package="com.company"/>
    <jpa:repositories base-package="com.company.repositories"/>
    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="packagesToScan" value="com.company.entities"/>
        <property name="dataSource" ref="dataSource"/>
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="showSql" value="true"/>
            </bean>
        </property>
    </bean>


    <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.SQLServer2012Dialect</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.multi_tenant_connection_provider">com.company.hibernate.MultiTenantConnectionProviderImpl</prop>
                <prop key="hibernate.multiTenancy">DATABASE</prop>
            </props>
        </property>
    </bean>


    <tx:annotation-driven transaction-manager="transactionManager"/>

    <!--Vendor specific properties …
Run Code Online (Sandbox Code Playgroud)

hibernate multi-tenant discriminator spring-data spring-data-jpa

5
推荐指数
1
解决办法
2420
查看次数

ASP.NET MVC传递数据

大家好,我正在玩ASP.NET MVC和Entity Framework.我想知道什么是处理从控制器到视图再返回数据的最佳方法.我会更好地解释一下:

我有一个用于创建新"收据"对象的操作

        [Authorize]
    public ActionResult CreateReceipt(int id)
    {
           //I create the receipt object
            Receipt newReceipt = new Receipt();
           // assign some information about the owner of the receipt 
           // and the group that it belongs to
            newReceipt.Group = group;
            newReceipt.Owner = user;
            //send off to the view to be displayed
            return View(newReceipt);
    }
Run Code Online (Sandbox Code Playgroud)

所以我基本上创建一个收据并预先填写一些信息(包括授权用户和一些组ID信息)然后我可以将其发送到具有各种表单元素的视图,让用户填写其他缺少的字段并提交以便添加新收据.如果收据对象中的所有字段都显示在表单上,​​这一切都很有效.

如果我删除用户不应该触摸的东西的表单元素(例如组号,收据所属的用户ID等等)然后当我提交表单并在控制器中提取它时:

        [HttpPost]
    [Authorize]
    public ActionResult CreateReceipt(Receipt receipt)
    {

        if (ModelState.IsValid)
        {
            using (EntityFrameworkEntities context = new EntityFrameworkEntities)
            {
                context.AddToReceipts(receipt);
                context.SaveChanges();
            }
            return RedirectToAction("Index");
        } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc entity-framework-4

4
推荐指数
1
解决办法
443
查看次数

bgiframe与jQuery UI 1.8.9 Dialog和jQuery 1.5

所以我使用的是jQuery UI的对话框.但是当我读到IE6中有一个常见的错误(不幸的是我必须确保它有效),其中下拉列表不关注z-index队列.我还读到有一个方便的插件,称为bgiframe来处理我的叠加问题.我找到了人们说使用它的两种不同方式,但都不起作用.我可能只是在做一些非常愚蠢的事情,但我需要让它发挥作用.

包括jQuery.bgiframe.js版本2.1.1以下是我尝试使用它而无需工作的两种方法:(我已经在我正在处理的页面中包含了所有jQuery-UI,jQuery和bgiframe)

  1. 来自实际插件的文档说这样做:

    $("#selectDropdownThatNeedsFixing").bgiframe();
    
    Run Code Online (Sandbox Code Playgroud)

    这会导致jQuery异常,说对象是预期的.

  2. 我从下一页看到的第二种方式:http://docs.jquery.com/UI/Dialog/dialog基本上只是bgiframe: true在初始化对话框时设置:

    $( ".selector" ).dialog({ bgiframe: true });
    
    Run Code Online (Sandbox Code Playgroud)

这不会出错,但是当我测试它时,IE6中仍然存在问题.

我错过了什么吗?我应该用哪种方式使用bgiframe?任何方向都会非常感激.谢谢您的帮助!

css jquery jquery-ui bgiframe jquery-ui-plugins

3
推荐指数
1
解决办法
6070
查看次数