小编Vis*_*swa的帖子

使用JSPDF从复杂的html表生成PDF

我试图使用JSPDF从html生成pdf,html有一个复杂的表格,下面添加了图片.

在此输入图像描述

你可以在这个小提琴中看到,到目前为止我尝试了什么.

pdf.fromHTML(
source, // HTML string or DOM elem ref.
margins.left, // x coord
margins.top, { // y coord
    'width': margins.width, // max width of content on PDF
    'elementHandlers': specialElementHandlers
},

function (dispose) {
    // dispose: object with X, Y of the last line add to the PDF 
    //          this allow the insertion of new lines after html
    pdf.save('Test.pdf');
}, margins);
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试生成pdf时,我得到了

Uncaught TypeError: Cannot read property 'name' of undefined
Run Code Online (Sandbox Code Playgroud)

是否可以将JSPDF用于这种复杂的表,或者它只适用于简单的表.

编辑: 通过不同的方式解决这个问题,这就是我所做的

  1. 我将HTML表格转换为Canvas html2canvas.js
  2. 您可以使用canvas获取画布作为Base64图像canvas.toDataURL("image/jpeg" …

html javascript pdf jspdf

8
推荐指数
2
解决办法
7976
查看次数

AEM 6.2 cq:对话框图像上传预览不起作用

这是我的第一个AEM项目,我在一个正在工作的组件中上传图像,如果我打开组件的设置来更改图像,预览不起作用,如下图所示.

在此输入图像描述

cq:对话框横幅文件上传属性 在此输入图像描述

如果我尝试打开图像,/content/xxxDetails/xxx/_jcr_content/par/banner/bannerImage我可以访问图像.

我如何解决预览问题,我认为这是基本问题,但请帮助我,因为这是我的第一个项目.

编辑:cq:对话框

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
    jcr:primaryType="nt:unstructured"
    jcr:title="Properties"
    sling:resourceType="cq/gui/components/authoring/dialog">
    <content
        jcr:primaryType="nt:unstructured"
        sling:resourceType="granite/ui/components/foundation/container">
        <layout
            jcr:primaryType="nt:unstructured"
            sling:resourceType="granite/ui/components/foundation/layouts/tabs"
            type="nav"/>
        <items jcr:primaryType="nt:unstructured">
            <banner
                jcr:primaryType="nt:unstructured"
                jcr:title="Banner Properties"
                sling:resourceType="granite/ui/components/foundation/section">
                <layout
                    jcr:primaryType="nt:unstructured"
                    sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns"/>
                <items jcr:primaryType="nt:unstructured">
                    <columns
                        jcr:primaryType="nt:unstructured"
                        sling:resourceType="granite/ui/components/foundation/container">
                        <items jcr:primaryType="nt:unstructured">
                            <headerText
                                jcr:primaryType="nt:unstructured"
                                sling:resourceType="granite/ui/components/foundation/form/textfield"
                                fieldLabel="Heading Text"
                                name="./header"/>
                            <SubText
                                jcr:primaryType="nt:unstructured"
                                sling:resourceType="granite/ui/components/foundation/form/textarea"
                                fieldLabel="SubHeading"
                                name="./subtext"/>
                            <bannerImage
                                jcr:primaryType="nt:unstructured"
                                sling:resourceType="granite/ui/components/foundation/form/fileupload"
                                autoStart="{Boolean}false"
                                class="cq-droptarget"
                                fieldLabel="Banner"
                                fileNameParameter="./bannerImgName"
                                fileReferenceParameter="./bannerImgRef"
                                mimeTypes="[image]"
                                multiple="{Boolean}false"
                                name="./bannerImage"
                                title="Upload Image"
                                uploadUrl="${suffix.path}"
                                useHTML5="{Boolean}true"/>
                        </items>
                    </columns>
                </items>
            </banner>
        </items>
    </content>
</jcr:root>
Run Code Online (Sandbox Code Playgroud)

错误日志

09.05.2017 18:29:15.949 *ERROR* [0:0:0:0:0:0:0:1 …
Run Code Online (Sandbox Code Playgroud)

aem aem-6

8
推荐指数
1
解决办法
1917
查看次数

如何使用单个文本框基于任何列数据过滤行

我在用ng-table.

我试图使用示例中给出的过滤器,但是为了过滤每个列,我需要有单独的文本框.

但我想要实现的是,一个文本框可以根据任何列数据搜索任何行.

我怎样才能实现这一目标?

就像jquery datatable搜索框一样.

angularjs angular-ui angularjs-directive ngtable

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

为什么我们在g中使用闭包:select optionvalue

我能理解什么是闭包.我可以理解下面的例子.

    def list = ['a','b','c','d']
    def newList = []

    def clos = { it.toUpperCase() }
    list.collect( newList, clos )

assert newList == ["A", "B", "C", "D"]  
Run Code Online (Sandbox Code Playgroud)

我去看了g:选择文档.我在下面看到了.

 <g:select optionKey="id" optionValue="${{it.title?.toUpperCase()}}" name="book.title" from="${bookList}" />
Run Code Online (Sandbox Code Playgroud)

我不明白$ {{it.title?.toUpperCase()}}.

我理解每个对象标题转换为大写的逻辑,但为什么我们需要双"{}"..

为什么使用$ {it.title?.toUpperCase()}无效

文档链接在此输入链接描述

grails groovy closures

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

Inappbrowser回调

我尝试使用inappbrowser登录facebook后回电话.但它无法检查电子邮件,名称等.这是我的代码

Inappbrowser电话

function onDeviceReady(){   
     var my_client_id = FBkey,
     my_redirect_uri = "http://www.fastabuy.com/index.php",
     my_type = "user_agent",
     my_display = "touch";

     var authorize_url = FBgraphapiurl+"/oauth/authorize?";
     authorize_url += "client_id=" + my_client_id;
     authorize_url += "&redirect_uri=" + my_redirect_uri;
     authorize_url += "&display=" + my_display;
     authorize_url += "&scope=publish_stream,email,user_likes";
     isfir = "true";

     var ref = window.open(authorize_url, '_blank', 'location=yes');
     ref.addEventListener('loadstop', function facebookLocChanged() {
         facebookLoc(my_redirect_uri)
     });
}
Run Code Online (Sandbox Code Playgroud)

检查回叫的方法

  function facebookLoc(loc){
     if (loc.indexOf("http://www.fastabuy.com/index.php?") > -1){
       alert(loc.indexOf)
     }
  }
Run Code Online (Sandbox Code Playgroud)

如何检查url何时loc.indexOf>-1关闭inappbrowser.请帮我解决这个问题.

facebook sencha-touch-2 cordova inappbrowser

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

如何使用jQuery选择锚标记内的文本

我想选择a标签并在点击时显示其文本.

换句话说,当我点击第一个链接 - "One"时,我想使用显示其文本"One" alert.

当我单击第二个链接 - "示例"时,我想使用显示文本"示例" alert.

<body>
    <div id="tree">
        <ul>
        <li><a target="_blank" href="one.html">One</a></li>
        <li class="folder expnded"><a target="_blank" href="two.html">Examples</a></li>
        </ul>
    </div>    
    <div id="display"></div>    
</body>
Run Code Online (Sandbox Code Playgroud)

更新1:

感谢大家的回答.我真正想要做的是我需要创建一个树结构,当我单击树叶节点时,我必须显示该叶节点的名称.

我使用jQuery DynaTree创建了树结构,但jQuery选择器在上面的代码中对我不起作用.

我无法在标签内选择标签或任何其他元素div.

下面是树形结构:

在此输入图像描述

这是我的完整HTML代码(上面只是一个示例代码)

<html>
<head>
<!-- Include the required JavaScript libraries: -->
<script src="js/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src='js/jquery-ui-1.8.20.custom.min.js' type="text/javascript"></script>
<script src='js/myjquery.js' type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/ui.dynatree.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script src="js/jquery.dynatree.js" type="text/javascript"></script>

</head>

<body>
    <div id="tree">
        <ul>
            <li>one</li>
            <li><a target="_blank" href="">Google</a>
            <li class="folder expnded">Examples …
Run Code Online (Sandbox Code Playgroud)

html jquery dynatree jquery-dynatree

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

在Android和Phonegap中推送通知

我正在Android应用程序中搜索推送通知.我查了一下" Pushwoosh ":在initPushwoosh方法我看到了GOOGLE_PROJECT_IDPUSHWOOSH_APP_ID.

function initPushwoosh() {
  var pushNotification = window.plugins.pushNotification;
  pushNotification.registerDevice(
    {
      projectid: "GOOGLE_PROJECT_ID",
      appid : "PUSHWOOSH_APP_ID"
    },
    function(status) {
      var pushToken = status;
      console.warn('push token: ' + pushToken);
    },
    function(status) {
      console.warn(JSON.stringify(['failed to register ', status]));
    }
  );
  document.addEventListener('push-notification', function(event) {
    var title = event.notification.title;
    var userData = event.notification.userdata;
    if(typeof(userData) != "undefined") {
      console.warn('user data: ' + JSON.stringify(userData));
    }
    navigator.notification.alert(title);
  });
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得这两个ID?或者有更好的方法吗?

我在PhoneGap文档中看到了Notification,它是推送通知吗?

谢谢.

android push-notification sencha-touch cordova

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

什么时候应用程序执行ajax请求我想添加加载掩码

在我的sencha应用程序中,当应用程序执行ajax请求时,我想添加加载掩码,并在请求完成后,我需要删除加载掩码.

我尝试下面的代码,但它不适合我

var mask = new Ext.LoadMask(Ext.getBody(), {msg:"Loading..."});

   Ext.Ajax.on('beforerequest', function(){
        mask.show();
   });

   Ext.Ajax.on('requestcomplete', function(){
        mask.hide();
   });
Run Code Online (Sandbox Code Playgroud)

ajax extjs sencha-touch sencha-touch-2

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

从小程序向服务器发布细节字节数组

在Grails Web应用程序中,我试图使用rest API将小鸟(指纹)字节数组从applet发布到服务器.

这是我试过的

private String post(String purl,String customerId, byte[] regMin1,byte[] regMin2) throws Exception {
    StringBuilder parameters = new StringBuilder();
    parameters.append("customerId=");
    parameters.append(customerId);
    parameters.append("&regMin1=");
    parameters.append(URLEncoder.encode(new String(regMin1),"UTF-8"));
    parameters.append("&regMin2=");
    parameters.append(URLEncoder.encode(new String(regMin2),"UTF-8"));
    URL url = new URL(purl); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();           
    connection.setDoOutput(true);
    connection.setDoInput(true);
    connection.setRequestMethod("POST"); 
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
    connection.setRequestProperty("Content-Length",Integer.toString(parameters.toString().getBytes().length));

    DataOutputStream wr = new DataOutputStream(connection.getOutputStream ());
    wr.writeBytes(parameters.toString());
    wr.flush();
    wr.close();
    BufferedReader in = new BufferedReader(new InputStreamReader(
                                connection.getInputStream()));
    StringBuilder builder = new StringBuilder();
    String aux = "";

    while ((aux = in.readLine()) != null) {
        builder.append(aux);
    }
    in.close();
    connection.disconnect(); …
Run Code Online (Sandbox Code Playgroud)

java grails applet http-post fingerprint

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