标签: flatten

使用utf-8字符将FDF/XFDF表单压缩为PHP格式的PDF

我的情景:

  • 带有formfields的PDF模板:template.pdf
  • 包含要填写的数据的XFDF文件:fieldData.xfdf

现在我需要将这些文件组合并展平.pdftk在php中轻松完成工作:

exec("pdftk template.pdf fill_form fieldData.xfdf output flatFile.pdf flatten");
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不支持完全的utf-8.例如:西里尔字母和希腊字母被扰乱.我使用了Arial,带有unicode字符集.

  • 如何完成展平我的unicode文件?
  • 还有其他提供unicode支持的pdf工具吗?
  • pdftk有一个我缺少的unicode开关吗?

编辑1:由于这个问题已经超过9个月没有解决,我决定为此开始赏金.如果有选择,以赞助某项功能或在PDFTK一个bug修正,我会很高兴捐赠.

编辑2:我不再在这个项目上工作,所以我无法验证新的答案.如果有人有类似的问题,我很高兴,如果他们能回应我的意见.

pdf utf-8 flatten pdftk xfdf

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

压平数据框

我有这个嵌套的数据框架

test <- structure(list(id = c(13, 27), seq = structure(list(
`1` = c("1997", "1997", "1997", "2007"),
`2` = c("2007", "2007", "2007", "2007", "2007", "2007", "2007")), 
.Names = c("1", "2"))), .Names = c("penr", 
"seq"), row.names = c("1", "2"), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

我想要第二列中所有值的列表,即

result <- c("1997", "1997", "1997", "2007", "2007", "2007", "2007", "2007", "2007", "2007", "2007")
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法来实现这一目标?

nested r flatten dataframe

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

Python列表理解,解包和多个操作

我想通过执行以下操作来解压缩我创建的元组,因此结果只是一个简单的列表.我可以在2-3行中获得所需的结果但肯定有一个oneliner list.comp?

x = range(10)
y = [(i,j**2) for i,j in zip(x,x)]
>>>y
[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6, 36), (7, 49), (8, 64), (9
, 81)]
>>>
Run Code Online (Sandbox Code Playgroud)

我想要的是 result = [0,0,1,1,2,4,3,9.....]

y = len(x)*[0]
y[::2] = x
y[1::2] = [i**2 for i in x]
Run Code Online (Sandbox Code Playgroud)

给出我想要的但是如果我需要更一般的情况怎么办:

y = [(i, sqrt(i), i**3, some_operation_on_i, f(i), g(i)) for i in x]
Run Code Online (Sandbox Code Playgroud)

例如,我应该能够得到一个像结果一样的直接列表,其中我只指定了一个操作(正方形)来跟随每个i但现在每个i之后有任意数量的操作.

python tuples list-comprehension flatten

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

Python:使用索引展平嵌套列表

给定一个任意大小的任意深度嵌套列表的列表,我想在树中的所有元素上使用一个平坦的,深度优先的迭代器,但是路径指示也是如此:

for x, y in flatten(L), x == L[y[0]][y[1]]...[y[-1]]. 
Run Code Online (Sandbox Code Playgroud)

那是

L = [[[1, 2, 3], [4, 5]], [6], [7,[8,9]], 10]
flatten(L)
Run Code Online (Sandbox Code Playgroud)

应该产量:

(1, (0, 0, 0)),
(2, (0, 0, 1)),
(3, (0, 0, 2)),
(4, (0, 1, 0)),
(5, (0, 1, 1)),
(6, (1, 0)),
(7, (2, 0)),
(8, (2, 1, 0)),
(9, (2, 1, 1)),
(10, (3,))
Run Code Online (Sandbox Code Playgroud)

我使用带yield语句的生成器为此做了一个递归实现:

def flatten(l):
    for i, e in enumerate(l):
        try:
            for x, y in flatten(e):
                yield x, (i,) + y
        except: …
Run Code Online (Sandbox Code Playgroud)

python recursion iterator nested-lists flatten

12
推荐指数
2
解决办法
917
查看次数

为什么itertools.chain比扁平化列表理解更快?

这个问题的评论中讨论的上下文中提到,虽然连接一串字符串只是简单地''.join([str1, str2, ...])连接,但连接一系列列表就像是list(itertools.chain(lst1, lst2, ...)),尽管你也可以使用列表理解[x for y in [lst1, lst2, ...] for x in y].让我感到惊讶的是,第一种方法始终比第二种方法更快:

import random
import itertools

random.seed(100)
lsts = [[1] * random.randint(100, 1000) for i in range(1000)]

%timeit [x for y in lsts for x in y]
# 39.3 ms ± 436 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
%timeit list(itertools.chain.from_iterable(lsts))
# 30.6 ms ± 866 µs per loop (mean ± std. dev. …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension flatten python-itertools

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

如何在Scala中展平不同类型的列表?

我有4个元素:( List[List[Object]]每个元素中的对象不同)我想要压缩,以便我可以拥有List[List[obj1],List[obj2],List[obj3],List[obj4]]

我试图压缩它们,我获得了一个嵌套列表,我不能应用flatten,因为它说:没有隐式参数匹配参数类型.

我怎么解决这个问题?我应该尝试另一种方式还是有办法让扁平化的工作?

我对scala有点新意,所以这可能是一个愚蠢的问题:D提前谢谢!clau

scala nested list flatten

11
推荐指数
3
解决办法
2万
查看次数

如何使用AutoMapper将对象列表转换为整数列表?

我有一个Student对象:

public class Student
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

一个Classroom对象:

public class Classroom
{
    public List<Student> Students { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想使用AutoMapper将学生列表转换为学生ID列表:

public class ClassroomDTO
{
    public List<int> StudentIds { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如何配置AutoMapper以执行此转换?

回答:

为了扩展我的问题和Jimmy的答案,这就是我最终做的事情:

Mapper.CreateMap<Student, int>().ConvertUsing(x => x.Id);
Mapper.CreateMap<Classroom, ClassroomDTO>()
      .ForMember(x => x.StudentIds, y => y.MapFrom(z => z.Students));
Run Code Online (Sandbox Code Playgroud)

AutoMapper非常聪明,可以完成剩下的工作.

flatten automapper

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

如何复制某些文件(没有文件夹层次结构),但不要覆盖现有文件?

我需要将所有*.doc文件(但不是名称匹配的文件夹*.doc)从网络文件夹\\server\source(包括所有嵌套文件夹中的文件)复制到本地文件夹C:\destination而不保留嵌套文件夹层次结构(即所有文件应直接进入,C:\destination并且不应嵌套文件夹创建于C:\destination).如果有多个文件具有相同名称的不同子文件夹\\server\source,则只应复制第一个文件 ,然后不要覆盖 - 之后发现的所有冲突文件都应该被跳过(可能有很多这样的情况,跳过的文件不应该通过网络传输,否则需要花费太多时间).这是我尝试在PowerShell中实现它:

cp \\server\source\* -Recurse -Include *.doc -Container:$false -Destination C:\destination
Run Code Online (Sandbox Code Playgroud)

此命令至少存在两个问题:

  • 它复制名称匹配的文件夹*.doc.
  • 如果名称冲突,以后找到的任何文件都将通过网络传输并覆盖前一个文件.

你能建议如何解决这些问题吗?
使用实现copy,xcopy,robocopy,cscript或者*.bat,*.cmd也欢迎.
本地操作系统是Windows 8,文件系统是NTFS.

powershell copy file overwrite flatten

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

在Java 8中递归地展平嵌套映射的值

给定a Map<String, Object>,值是一个String或另一个Map<String, Object>,如何使用Java 8将地图展平为单个值列表?

例:

Map - "key1" -> "value1"
    - "key2" -> "value2"
    - "key3" -> Map - "key3.1" -> "value3.1"
                    - "key3.2" -> "value3.2"
                    - "key3.3" -> Map - "key3.3.1" -> "value3.3.1"
                                      - "key3.3.2" -> "value3.3.2" 
Run Code Online (Sandbox Code Playgroud)

对于上面的例子,我想要以下列表:

value1
value2
value3.1
value3.2
value3.3.1
value3.3.2
Run Code Online (Sandbox Code Playgroud)

我知道它可以这样做:

public static void main(String args[]) throws Exception {
    //Map with nested maps with nested maps with nested maps with nested......
    Map<String, Object> map = getSomeMapWithNestedMaps();

    List<Object> values = …
Run Code Online (Sandbox Code Playgroud)

java flatten java-8 java-stream

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

Visual Studio代码 - 在资源管理器视图中展平包

我想知道是否有人知道如何在visual studio代码IDE中展平包结构.我以前在mz Intellj IDE中有,但是使用VS代码我找不到类似的东西; 我正在寻找任何可以解决这个问题的解决方案.如果可用,请更改设置或扩展名.

提前致谢

ide package flatten visual-studio-code

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